From f5d2344a85d5538582cdadb8fb0e072f771a8194 Mon Sep 17 00:00:00 2001 From: Markus Haas Date: Sun, 23 Jan 2022 22:25:21 +0100 Subject: [PATCH 1/2] Made self-updating work At the moment it only works on ethOS devices. --- app/build.gradle | 3 +- .../dappstore/dappstores_query.graphql | 6 + .../org/ethereum/dappstore/schema.json | 3346 +- .../org/ethereum/dappstore/MainActivity.kt | 10 +- .../ethereum/dappstore/logic/AppDownloader.kt | 7 - .../ethereum/dappstore/logic/AppUpdater.kt | 38 + contracts/README.md | 2 +- contracts/abi/DAppStore.json | 373 +- .../Initializable.sol/Initializable.dbg.json | 2 +- .../AccessControl.sol/AccessControl.dbg.json | 2 +- .../IAccessControl.dbg.json | 2 +- .../utils/Context.sol/Context.dbg.json | 2 +- .../utils/Strings.sol/Strings.dbg.json | 2 +- .../introspection/ERC165.sol/ERC165.dbg.json | 2 +- .../IERC165.sol/IERC165.dbg.json | 2 +- .../2aa1e86db38f062f94ff63d89baaa610.json | 27882 ----------- .../3754d022ee2847c04ff26aa25abf96cc.json | 26242 ---------- ... => eb8fac9a10c5bb11ac5220c0c402b393.json} | 41624 +++++++++++----- .../DAppStore.sol/DAppStore.dbg.json | 2 +- .../contracts/DAppStore.sol/DAppStore.json | 54 +- .../NotUpgradableStore.dbg.json | 2 +- contracts/contracts/DAppStore.sol | 11 +- .../dappstoresubgraph/abis/DAppStore.json | 370 +- .../generated/DAppStore/DAppStore.ts | 125 +- .../dappstoresubgraph/generated/schema.ts | 44 + contracts/dappstoresubgraph/schema.graphql | 4 + contracts/dappstoresubgraph/src/mapping.ts | 17 +- contracts/dappstoresubgraph/subgraph.yaml | 16 +- contracts/package-lock.json | 46 +- contracts/package.json | 2 +- 30 files changed, 32116 insertions(+), 68124 deletions(-) create mode 100644 app/src/main/graphql/org/ethereum/dappstore/dappstores_query.graphql create mode 100644 app/src/main/java/org/ethereum/dappstore/logic/AppUpdater.kt delete mode 100644 contracts/artifacts/build-info/2aa1e86db38f062f94ff63d89baaa610.json delete mode 100644 contracts/artifacts/build-info/3754d022ee2847c04ff26aa25abf96cc.json rename contracts/artifacts/build-info/{3f0d2e9e5af6efbb8295c70b3d14824d.json => eb8fac9a10c5bb11ac5220c0c402b393.json} (52%) diff --git a/app/build.gradle b/app/build.gradle index 1373be6..f286111 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,14 +11,13 @@ android { applicationId "org.ethereum.dappstore" minSdk 21 targetSdk 31 - versionCode 1 + versionCode 6 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary true } - manifestPlaceholders["userID"] = "android.uid.system" } flavorDimensions "version" productFlavors { diff --git a/app/src/main/graphql/org/ethereum/dappstore/dappstores_query.graphql b/app/src/main/graphql/org/ethereum/dappstore/dappstores_query.graphql new file mode 100644 index 0000000..4c5dc5b --- /dev/null +++ b/app/src/main/graphql/org/ethereum/dappstore/dappstores_query.graphql @@ -0,0 +1,6 @@ +query DappStores($first: Int) { + dappStores(first: 1) { + id + ipfsHash + } +} \ No newline at end of file diff --git a/app/src/main/graphql/org/ethereum/dappstore/schema.json b/app/src/main/graphql/org/ethereum/dappstore/schema.json index 4ec4aef..3e73534 100644 --- a/app/src/main/graphql/org/ethereum/dappstore/schema.json +++ b/app/src/main/graphql/org/ethereum/dappstore/schema.json @@ -1 +1,3345 @@ -{"data":{"__schema":{"directives":[{"args":[],"description":null,"locations":["OBJECT"],"name":"entity"},{"args":[{"defaultValue":null,"description":null,"name":"field","type":{"kind":"SCALAR","name":"String","ofType":null}}],"description":null,"locations":["FIELD_DEFINITION"],"name":"derivedFrom"},{"args":[{"defaultValue":null,"description":null,"name":"id","type":{"kind":"SCALAR","name":"String","ofType":null}}],"description":null,"locations":["OBJECT"],"name":"subgraphId"}],"mutationType":null,"queryType":{"name":"Query"},"subscriptionType":{"name":"Subscription"},"types":[{"description":null,"enumValues":null,"fields":[{"args":[],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"id","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}}},{"args":[],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"appOwner","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Bytes","ofType":null}}},{"args":[],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"appName","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}},{"args":[],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"appIPFSHash","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}},{"args":[],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"description","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}},{"args":[],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"developer","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}},{"args":[],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"type","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}},{"args":[],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"category","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}},{"args":[],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"logo","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}},{"args":[],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"version","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}},{"args":[],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"images","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}}}],"inputFields":null,"interfaces":[],"kind":"OBJECT","name":"App","possibleTypes":null},{"description":null,"enumValues":null,"fields":null,"inputFields":[{"defaultValue":null,"description":null,"name":"id","type":{"kind":"SCALAR","name":"ID","ofType":null}},{"defaultValue":null,"description":null,"name":"id_not","type":{"kind":"SCALAR","name":"ID","ofType":null}},{"defaultValue":null,"description":null,"name":"id_gt","type":{"kind":"SCALAR","name":"ID","ofType":null}},{"defaultValue":null,"description":null,"name":"id_lt","type":{"kind":"SCALAR","name":"ID","ofType":null}},{"defaultValue":null,"description":null,"name":"id_gte","type":{"kind":"SCALAR","name":"ID","ofType":null}},{"defaultValue":null,"description":null,"name":"id_lte","type":{"kind":"SCALAR","name":"ID","ofType":null}},{"defaultValue":null,"description":null,"name":"id_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}}}},{"defaultValue":null,"description":null,"name":"id_not_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}}}},{"defaultValue":null,"description":null,"name":"appOwner","type":{"kind":"SCALAR","name":"Bytes","ofType":null}},{"defaultValue":null,"description":null,"name":"appOwner_not","type":{"kind":"SCALAR","name":"Bytes","ofType":null}},{"defaultValue":null,"description":null,"name":"appOwner_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Bytes","ofType":null}}}},{"defaultValue":null,"description":null,"name":"appOwner_not_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Bytes","ofType":null}}}},{"defaultValue":null,"description":null,"name":"appOwner_contains","type":{"kind":"SCALAR","name":"Bytes","ofType":null}},{"defaultValue":null,"description":null,"name":"appOwner_not_contains","type":{"kind":"SCALAR","name":"Bytes","ofType":null}},{"defaultValue":null,"description":null,"name":"appName","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appName_not","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appName_gt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appName_lt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appName_gte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appName_lte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appName_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"appName_not_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"appName_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appName_not_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appName_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appName_not_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appName_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appName_not_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash_not","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash_gt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash_lt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash_gte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash_lte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"appIPFSHash_not_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"appIPFSHash_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash_not_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash_not_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"appIPFSHash_not_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description_not","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description_gt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description_lt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description_gte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description_lte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"description_not_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"description_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description_not_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description_not_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"description_not_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer_not","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer_gt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer_lt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer_gte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer_lte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"developer_not_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"developer_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer_not_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer_not_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"developer_not_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type_not","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type_gt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type_lt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type_gte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type_lte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"type_not_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"type_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type_not_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type_not_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"type_not_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category_not","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category_gt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category_lt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category_gte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category_lte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"category_not_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"category_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category_not_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category_not_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"category_not_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo_not","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo_gt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo_lt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo_gte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo_lte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"logo_not_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"logo_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo_not_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo_not_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"logo_not_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version_not","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version_gt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version_lt","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version_gte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version_lte","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"version_not_in","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"version_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version_not_contains","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version_not_starts_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"version_not_ends_with","type":{"kind":"SCALAR","name":"String","ofType":null}},{"defaultValue":null,"description":null,"name":"images","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"images_not","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"images_contains","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}},{"defaultValue":null,"description":null,"name":"images_not_contains","type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}}}],"interfaces":null,"kind":"INPUT_OBJECT","name":"App_filter","possibleTypes":null},{"description":null,"enumValues":[{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"id"},{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"appOwner"},{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"appName"},{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"appIPFSHash"},{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"description"},{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"developer"},{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"type"},{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"category"},{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"logo"},{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"version"},{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"images"}],"fields":null,"inputFields":null,"interfaces":null,"kind":"ENUM","name":"App_orderBy","possibleTypes":null},{"description":null,"enumValues":null,"fields":null,"inputFields":null,"interfaces":null,"kind":"SCALAR","name":"BigDecimal","possibleTypes":null},{"description":null,"enumValues":null,"fields":null,"inputFields":null,"interfaces":null,"kind":"SCALAR","name":"BigInt","possibleTypes":null},{"description":null,"enumValues":null,"fields":null,"inputFields":[{"defaultValue":null,"description":null,"name":"hash","type":{"kind":"SCALAR","name":"Bytes","ofType":null}},{"defaultValue":null,"description":null,"name":"number","type":{"kind":"SCALAR","name":"Int","ofType":null}},{"defaultValue":null,"description":null,"name":"number_gte","type":{"kind":"SCALAR","name":"Int","ofType":null}}],"interfaces":null,"kind":"INPUT_OBJECT","name":"Block_height","possibleTypes":null},{"description":null,"enumValues":null,"fields":null,"inputFields":null,"interfaces":null,"kind":"SCALAR","name":"Boolean","possibleTypes":null},{"description":null,"enumValues":null,"fields":null,"inputFields":null,"interfaces":null,"kind":"SCALAR","name":"Bytes","possibleTypes":null},{"description":null,"enumValues":null,"fields":null,"inputFields":null,"interfaces":null,"kind":"SCALAR","name":"ID","possibleTypes":null},{"description":null,"enumValues":null,"fields":null,"inputFields":null,"interfaces":null,"kind":"SCALAR","name":"Int","possibleTypes":null},{"description":null,"enumValues":[{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"asc"},{"deprecationReason":null,"description":null,"isDeprecated":false,"name":"desc"}],"fields":null,"inputFields":null,"interfaces":null,"kind":"ENUM","name":"OrderDirection","possibleTypes":null},{"description":null,"enumValues":null,"fields":[{"args":[{"defaultValue":null,"description":null,"name":"id","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}}},{"defaultValue":null,"description":"The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.","name":"block","type":{"kind":"INPUT_OBJECT","name":"Block_height","ofType":null}},{"defaultValue":"deny","description":"Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.","name":"subgraphError","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"_SubgraphErrorPolicy_","ofType":null}}}],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"app","type":{"kind":"OBJECT","name":"App","ofType":null}},{"args":[{"defaultValue":"0","description":null,"name":"skip","type":{"kind":"SCALAR","name":"Int","ofType":null}},{"defaultValue":"100","description":null,"name":"first","type":{"kind":"SCALAR","name":"Int","ofType":null}},{"defaultValue":null,"description":null,"name":"orderBy","type":{"kind":"ENUM","name":"App_orderBy","ofType":null}},{"defaultValue":null,"description":null,"name":"orderDirection","type":{"kind":"ENUM","name":"OrderDirection","ofType":null}},{"defaultValue":null,"description":null,"name":"where","type":{"kind":"INPUT_OBJECT","name":"App_filter","ofType":null}},{"defaultValue":null,"description":"The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.","name":"block","type":{"kind":"INPUT_OBJECT","name":"Block_height","ofType":null}},{"defaultValue":"deny","description":"Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.","name":"subgraphError","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"_SubgraphErrorPolicy_","ofType":null}}}],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"apps","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"App","ofType":null}}}}},{"args":[{"defaultValue":null,"description":null,"name":"block","type":{"kind":"INPUT_OBJECT","name":"Block_height","ofType":null}}],"deprecationReason":null,"description":"Access to subgraph metadata","isDeprecated":false,"name":"_meta","type":{"kind":"OBJECT","name":"_Meta_","ofType":null}}],"inputFields":null,"interfaces":[],"kind":"OBJECT","name":"Query","possibleTypes":null},{"description":null,"enumValues":null,"fields":null,"inputFields":null,"interfaces":null,"kind":"SCALAR","name":"String","possibleTypes":null},{"description":null,"enumValues":null,"fields":[{"args":[{"defaultValue":null,"description":null,"name":"id","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}}},{"defaultValue":null,"description":"The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.","name":"block","type":{"kind":"INPUT_OBJECT","name":"Block_height","ofType":null}},{"defaultValue":"deny","description":"Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.","name":"subgraphError","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"_SubgraphErrorPolicy_","ofType":null}}}],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"app","type":{"kind":"OBJECT","name":"App","ofType":null}},{"args":[{"defaultValue":"0","description":null,"name":"skip","type":{"kind":"SCALAR","name":"Int","ofType":null}},{"defaultValue":"100","description":null,"name":"first","type":{"kind":"SCALAR","name":"Int","ofType":null}},{"defaultValue":null,"description":null,"name":"orderBy","type":{"kind":"ENUM","name":"App_orderBy","ofType":null}},{"defaultValue":null,"description":null,"name":"orderDirection","type":{"kind":"ENUM","name":"OrderDirection","ofType":null}},{"defaultValue":null,"description":null,"name":"where","type":{"kind":"INPUT_OBJECT","name":"App_filter","ofType":null}},{"defaultValue":null,"description":"The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.","name":"block","type":{"kind":"INPUT_OBJECT","name":"Block_height","ofType":null}},{"defaultValue":"deny","description":"Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.","name":"subgraphError","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"_SubgraphErrorPolicy_","ofType":null}}}],"deprecationReason":null,"description":null,"isDeprecated":false,"name":"apps","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"App","ofType":null}}}}},{"args":[{"defaultValue":null,"description":null,"name":"block","type":{"kind":"INPUT_OBJECT","name":"Block_height","ofType":null}}],"deprecationReason":null,"description":"Access to subgraph metadata","isDeprecated":false,"name":"_meta","type":{"kind":"OBJECT","name":"_Meta_","ofType":null}}],"inputFields":null,"interfaces":[],"kind":"OBJECT","name":"Subscription","possibleTypes":null},{"description":null,"enumValues":null,"fields":[{"args":[],"deprecationReason":null,"description":"The hash of the block","isDeprecated":false,"name":"hash","type":{"kind":"SCALAR","name":"Bytes","ofType":null}},{"args":[],"deprecationReason":null,"description":"The block number","isDeprecated":false,"name":"number","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Int","ofType":null}}}],"inputFields":null,"interfaces":[],"kind":"OBJECT","name":"_Block_","possibleTypes":null},{"description":"The type for the top-level _meta field","enumValues":null,"fields":[{"args":[],"deprecationReason":null,"description":"Information about a specific subgraph block. The hash of the block\nwill be null if the _meta field has a block constraint that asks for\na block number. It will be filled if the _meta field has no block constraint\nand therefore asks for the latest block\n","isDeprecated":false,"name":"block","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"_Block_","ofType":null}}},{"args":[],"deprecationReason":null,"description":"The deployment ID","isDeprecated":false,"name":"deployment","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}}},{"args":[],"deprecationReason":null,"description":"If `true`, the subgraph encountered indexing errors at some past block","isDeprecated":false,"name":"hasIndexingErrors","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Boolean","ofType":null}}}],"inputFields":null,"interfaces":[],"kind":"OBJECT","name":"_Meta_","possibleTypes":null},{"description":null,"enumValues":[{"deprecationReason":null,"description":"Data will be returned even if the subgraph has indexing errors","isDeprecated":false,"name":"allow"},{"deprecationReason":null,"description":"If the subgraph has indexing errors, data will be omitted. The default.","isDeprecated":false,"name":"deny"}],"fields":null,"inputFields":null,"interfaces":null,"kind":"ENUM","name":"_SubgraphErrorPolicy_","possibleTypes":null}]}}} \ No newline at end of file +{ + "__schema": { + "directives": [ + { + "args": [], + "description": null, + "locations": [ + "OBJECT" + ], + "name": "entity" + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "field", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + ], + "description": null, + "locations": [ + "FIELD_DEFINITION" + ], + "name": "derivedFrom" + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + ], + "description": null, + "locations": [ + "OBJECT" + ], + "name": "subgraphId" + } + ], + "mutationType": null, + "queryType": { + "name": "Query" + }, + "subscriptionType": { + "name": "Subscription" + }, + "types": [ + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "appOwner", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "appName", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "appIPFSHash", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "description", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "developer", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "type", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "category", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "logo", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "version", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "images", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "verified", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "status", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "App", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "appOwner", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appOwner_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appOwner_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "appOwner_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "appOwner_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appOwner_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appName_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "appIPFSHash_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "description_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "developer_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "type_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "category_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "logo_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "version_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "images", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "images_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "images_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "images_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "verified", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "verified_not", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "verified_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "verified_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "status", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "status_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "App_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "appOwner" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "appName" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "appIPFSHash" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "description" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "developer" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "type" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "category" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "logo" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "version" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "images" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "verified" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "status" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "App_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "BigDecimal", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "BigInt", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "hash", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "number", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "number_gte", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "Block_height", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Boolean", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Bytes", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "ipfsHash", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DAppStore", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ipfsHash_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "DAppStore_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "ipfsHash" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "DAppStore_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "ID", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Int", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "asc" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "desc" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "OrderDirection", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "app", + "type": { + "kind": "OBJECT", + "name": "App", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "App_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "App_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "apps", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "dappStore", + "type": { + "kind": "OBJECT", + "name": "DAppStore", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "DAppStore_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "DAppStore_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "dappStores", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DAppStore", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "Access to subgraph metadata", + "isDeprecated": false, + "name": "_meta", + "type": { + "kind": "OBJECT", + "name": "_Meta_", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "Query", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "String", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "app", + "type": { + "kind": "OBJECT", + "name": "App", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "App_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "App_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "apps", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "dappStore", + "type": { + "kind": "OBJECT", + "name": "DAppStore", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "DAppStore_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "DAppStore_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "dappStores", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DAppStore", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "Access to subgraph metadata", + "isDeprecated": false, + "name": "_meta", + "type": { + "kind": "OBJECT", + "name": "_Meta_", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "Subscription", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": "The hash of the block", + "isDeprecated": false, + "name": "hash", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The block number", + "isDeprecated": false, + "name": "number", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "_Block_", + "possibleTypes": null + }, + { + "description": "The type for the top-level _meta field", + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": "Information about a specific subgraph block. The hash of the block\nwill be null if the _meta field has a block constraint that asks for\na block number. It will be filled if the _meta field has no block constraint\nand therefore asks for the latest block\n", + "isDeprecated": false, + "name": "block", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "_Block_", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The deployment ID", + "isDeprecated": false, + "name": "deployment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "If `true`, the subgraph encountered indexing errors at some past block", + "isDeprecated": false, + "name": "hasIndexingErrors", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "_Meta_", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": "Data will be returned even if the subgraph has indexing errors", + "isDeprecated": false, + "name": "allow" + }, + { + "deprecationReason": null, + "description": "If the subgraph has indexing errors, data will be omitted. The default.", + "isDeprecated": false, + "name": "deny" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "possibleTypes": null + } + ] + } + } + \ No newline at end of file diff --git a/app/src/main/java/org/ethereum/dappstore/MainActivity.kt b/app/src/main/java/org/ethereum/dappstore/MainActivity.kt index fcb0ad3..6dd40b9 100644 --- a/app/src/main/java/org/ethereum/dappstore/MainActivity.kt +++ b/app/src/main/java/org/ethereum/dappstore/MainActivity.kt @@ -1,5 +1,6 @@ package org.ethereum.dappstore +import android.content.Context import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent @@ -12,19 +13,26 @@ import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController +import kotlinx.coroutines.* import org.ethereum.dappstore.ui.Screen import org.ethereum.dappstore.ui.components.* import org.ethereum.dappstore.ui.theme.DAppStoreTheme import org.ethereum.dappstore.ui.theme.Selected import org.ethereum.dappstore.ui.theme.Unselected +import org.ethereum.dappstore.logic.AppUpdater class MainActivity : FragmentActivity() { private val bottomNavScreens = listOf(Screen.MainNav.Home, Screen.MainNav.User, Screen.MainNav.Settings) - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + val context: Context = this; + runBlocking { + launch { + AppUpdater().checkForUpdate(context) + } + } setContent { val navController = rememberNavController() val navBackStackEntry by navController.currentBackStackEntryAsState() diff --git a/app/src/main/java/org/ethereum/dappstore/logic/AppDownloader.kt b/app/src/main/java/org/ethereum/dappstore/logic/AppDownloader.kt index c4f48ad..65f9fdc 100644 --- a/app/src/main/java/org/ethereum/dappstore/logic/AppDownloader.kt +++ b/app/src/main/java/org/ethereum/dappstore/logic/AppDownloader.kt @@ -44,13 +44,6 @@ class AppDownloader { private var appInfo: AppInfo? = null private var absoluteFilePath: String? = null - fun download(link: String, path: String) { - URL(link).openStream().use { input -> - FileOutputStream(File(path)).use { output -> - input.copyTo(output) - } - } - } fun isUserApp(ai: ApplicationInfo): Boolean { val mask = ApplicationInfo.FLAG_SYSTEM or ApplicationInfo.FLAG_UPDATED_SYSTEM_APP diff --git a/app/src/main/java/org/ethereum/dappstore/logic/AppUpdater.kt b/app/src/main/java/org/ethereum/dappstore/logic/AppUpdater.kt new file mode 100644 index 0000000..5cdf62b --- /dev/null +++ b/app/src/main/java/org/ethereum/dappstore/logic/AppUpdater.kt @@ -0,0 +1,38 @@ +package org.ethereum.dappstore.logic + +import android.content.Context +import android.widget.Toast +import org.ethereum.dappstore.BuildConfig +import com.apollographql.apollo.ApolloClient +import com.apollographql.apollo.coroutines.await +import org.ethereum.dappstore.DappStoresQuery +import org.ethereum.dappstore.data.models.AppInfo + +class AppUpdater { + private val ipfs = "https://gateway.pinata.cloud/ipfs/" + private val updaterClient = ApolloClient.builder() + .serverUrl("https://api.thegraph.com/subgraphs/name/markusbug/dappstore-rinkeby") + .build() + suspend fun checkForUpdate(context: Context) { + val currentVersionCode = BuildConfig.VERSION_CODE + updaterClient.query(DappStoresQuery()).await().data?.dappStores?.get(0).let { + if (it != null) { + if (currentVersionCode address) appOwners;\n mapping(uint => string) appName;\n mapping(uint => string) appIPFSHash;\n mapping(uint => string) appAddData;\n mapping(uint => uint) submitTime;\n mapping(uint => bool) appVerified;\n\n event NewApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n event UpdateApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n event ReleaseApp(uint appID);\n event VerifyApp(uint appID);\n event DeleteApp(uint appID);\n\n function initialize(uint _amountToPay, address[] calldata admins) public initializer {\n amountToPay = _amountToPay;\n for(uint i = 0;i bool) members;\n bytes32 adminRole;\n }\n\n mapping(bytes32 => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Modifier that checks that an account has a specific role. Reverts\n * with a standardized message including the required role.\n *\n * The format of the revert reason is given by the following regular expression:\n *\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n *\n * _Available since v4.1._\n */\n modifier onlyRole(bytes32 role) {\n _checkRole(role, _msgSender());\n _;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view override returns (bool) {\n return _roles[role].members[account];\n }\n\n /**\n * @dev Revert with a standard message if `account` is missing `role`.\n *\n * The format of the revert reason is given by the following regular expression:\n *\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n */\n function _checkRole(bytes32 role, address account) internal view {\n if (!hasRole(role, account)) {\n revert(\n string(\n abi.encodePacked(\n \"AccessControl: account \",\n Strings.toHexString(uint160(account), 20),\n \" is missing role \",\n Strings.toHexString(uint256(role), 32)\n )\n )\n );\n }\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view override returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n */\n function renounceRole(bytes32 role, address account) public virtual override {\n require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event. Note that unlike {grantRole}, this function doesn't perform any\n * checks on the calling account.\n *\n * [WARNING]\n * ====\n * This function should only be called from the constructor when setting\n * up the initial roles for the system.\n *\n * Using this function in any other way is effectively circumventing the admin\n * system imposed by {AccessControl}.\n * ====\n *\n * NOTE: This function is deprecated in favor of {_grantRole}.\n */\n function _setupRole(bytes32 role, address account) internal virtual {\n _grantRole(role, account);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n bytes32 previousAdminRole = getRoleAdmin(role);\n _roles[role].adminRole = adminRole;\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * Internal function without access restriction.\n */\n function _grantRole(bytes32 role, address account) internal virtual {\n if (!hasRole(role, account)) {\n _roles[role].members[account] = true;\n emit RoleGranted(role, account, _msgSender());\n }\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * Internal function without access restriction.\n */\n function _revokeRole(bytes32 role, address account) internal virtual {\n if (hasRole(role, account)) {\n _roles[role].members[account] = false;\n emit RoleRevoked(role, account, _msgSender());\n }\n }\n}\n" - }, - "@openzeppelin/contracts/access/IAccessControl.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n *\n * _Available since v3.1._\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {AccessControl-_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) external view returns (bool);\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n */\n function renounceRole(bytes32 role, address account) external;\n}\n" - }, - "@openzeppelin/contracts/utils/Context.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n}\n" - }, - "@openzeppelin/contracts/utils/Strings.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant _HEX_SYMBOLS = \"0123456789abcdef\";\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n while (value != 0) {\n digits -= 1;\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\n value /= 10;\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n if (value == 0) {\n return \"0x00\";\n }\n uint256 temp = value;\n uint256 length = 0;\n while (temp != 0) {\n length++;\n temp >>= 8;\n }\n return toHexString(value, length);\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = _HEX_SYMBOLS[value & 0xf];\n value >>= 4;\n }\n require(value == 0, \"Strings: hex length insufficient\");\n return string(buffer);\n }\n}\n" - }, - "@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" - }, - "@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" - } - }, - "settings": { - "optimizer": { - "enabled": false, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "output": { - "contracts": { - "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "Initializable": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() initializer {} ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To initialize the implementation contract, you can either invoke the initializer manually, or you can include a constructor to automatically mark it as initialized when it is deployed: [.hljs-theme-light.nopadding] ```\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x6287586f5e4a103c89d4dda41406136cdf283cc625bd1ebfdf1468aae5bfe449\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30e2e913292e86a9bce50d51882b23ef57ae4c811003ec96cf39b1781f68b202\",\"dweb:/ipfs/QmUXqjyiAHbEMJ4zLfaduWYuVwp1HozqVhtChe9VfdpjoV\"]}},\"version\":1}" - } - }, - "@openzeppelin/contracts/access/AccessControl.sol": { - "AccessControl": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "DEFAULT_ADMIN_ROLE()": "a217fddf", - "getRoleAdmin(bytes32)": "248a9ca3", - "grantRole(bytes32,address)": "2f2ff15d", - "hasRole(bytes32,address)": "91d14854", - "renounceRole(bytes32,address)": "36568abe", - "revokeRole(bytes32,address)": "d547741f", - "supportsInterface(bytes4)": "01ffc9a7" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xb9a137b317dc4806805f2259686186c0c053c32d80fe9c15ecdbf2eb1cf52849\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8910762bea89696c6dc68a63be98c6ddd597955f8a29418661cc99d0ce090663\",\"dweb:/ipfs/Qmed14MXXFdNYE22bCuVy5XVAMKUo1DncY8BF8VkyrvXmh\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}" - } - }, - "@openzeppelin/contracts/access/IAccessControl.sol": { - "IAccessControl": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "getRoleAdmin(bytes32)": "248a9ca3", - "grantRole(bytes32,address)": "2f2ff15d", - "hasRole(bytes32,address)": "91d14854", - "renounceRole(bytes32,address)": "36568abe", - "revokeRole(bytes32,address)": "d547741f" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]}},\"version\":1}" - } - }, - "@openzeppelin/contracts/utils/Context.sol": { - "Context": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}" - } - }, - "@openzeppelin/contracts/utils/Strings.sol": { - "Strings": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d42fd2dfee6a4aaee12906ea1a88cdc28610259fbc4bad568f79dc045c6e0f3764736f6c63430008090033", - "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 0x2F 0xD2 0xDF 0xEE PUSH11 0x4AAEE12906EA1A88CDC286 LT 0x25 SWAP16 0xBC 0x4B 0xAD JUMP DUP16 PUSH26 0xDC045C6E0F3764736F6C63430008090033000000000000000000 ", - "sourceMap": "146:1885:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d42fd2dfee6a4aaee12906ea1a88cdc28610259fbc4bad568f79dc045c6e0f3764736f6c63430008090033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 0x2F 0xD2 0xDF 0xEE PUSH11 0x4AAEE12906EA1A88CDC286 LT 0x25 SWAP16 0xBC 0x4B 0xAD JUMP DUP16 PUSH26 0xDC045C6E0F3764736F6C63430008090033000000000000000000 ", - "sourceMap": "146:1885:4:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]}},\"version\":1}" - } - }, - "@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "ERC165": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "supportsInterface(bytes4)": "01ffc9a7" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}" - } - }, - "@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "IERC165": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "supportsInterface(bytes4)": "01ffc9a7" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}" - } - }, - "contracts/DAppStore.sol": { - "DAppStore": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "appID", - "type": "uint256" - } - ], - "name": "DeleteApp", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "appID", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "appOwner", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "appName", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "appIPFSHash", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "appAddData", - "type": "string" - } - ], - "name": "NewApp", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "appID", - "type": "uint256" - } - ], - "name": "ReleaseApp", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "appID", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "appOwner", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "appName", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "appIPFSHash", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "appAddData", - "type": "string" - } - ], - "name": "UpdateApp", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "appID", - "type": "uint256" - } - ], - "name": "VerifyApp", - "type": "event" - }, - { - "inputs": [], - "name": "ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "amountToPay", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "appID", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_appID", - "type": "uint256" - } - ], - "name": "deleteApp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_appID", - "type": "uint256" - } - ], - "name": "getDAppData", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "appID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "appOwner", - "type": "address" - }, - { - "internalType": "string", - "name": "appName", - "type": "string" - }, - { - "internalType": "string", - "name": "appIPFSHash", - "type": "string" - }, - { - "internalType": "string", - "name": "appAddData", - "type": "string" - } - ], - "internalType": "struct DAppStore.App", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_amountToPay", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "admins", - "type": "address[]" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_appID", - "type": "uint256" - } - ], - "name": "releaseDApp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_name", - "type": "string" - }, - { - "internalType": "string", - "name": "_ipfsHash", - "type": "string" - }, - { - "internalType": "string", - "name": "_additionalData", - "type": "string" - } - ], - "name": "submitDApp", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_appID", - "type": "uint256" - } - ], - "name": "transferAppOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_appID", - "type": "uint256" - }, - { - "internalType": "string", - "name": "_name", - "type": "string" - }, - { - "internalType": "string", - "name": "_ipfsHash", - "type": "string" - }, - { - "internalType": "string", - "name": "_additionalData", - "type": "string" - } - ], - "name": "updateDApp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_appID", - "type": "uint256" - } - ], - "name": "verifyDApp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506124a8806100206000396000f3fe6080604052600436106101095760003560e01c8063887e4b8611610095578063ab444f2811610064578063ab444f2814610379578063d547741f146103a2578063e58cdd90146103cb578063e73173a4146103f4578063f9a6cbae1461041057610109565b8063887e4b86146102ab57806391d14854146102e8578063a217fddf14610325578063a920b78c1461035057610109565b806336568abe116100dc57806336568abe146101da5780635cadd4a9146102035780636df693d31461022c57806375b238fc146102555780637ba136801461028057610109565b806301ffc9a71461010e5780631805d79f1461014b578063248a9ca3146101745780632f2ff15d146101b1575b600080fd5b34801561011a57600080fd5b50610135600480360381019061013091906115fe565b61043b565b6040516101429190611646565b60405180910390f35b34801561015757600080fd5b50610172600480360381019061016d9190611697565b6104b5565b005b34801561018057600080fd5b5061019b600480360381019061019691906116fa565b6105b5565b6040516101a89190611736565b60405180910390f35b3480156101bd57600080fd5b506101d860048036038101906101d391906117af565b6105d5565b005b3480156101e657600080fd5b5061020160048036038101906101fc91906117af565b6105fe565b005b34801561020f57600080fd5b5061022a60048036038101906102259190611697565b610681565b005b34801561023857600080fd5b50610253600480360381019061024e9190611697565b6107a5565b005b34801561026157600080fd5b5061026a6107df565b6040516102779190611736565b60405180910390f35b34801561028c57600080fd5b50610295610803565b6040516102a291906117fe565b60405180910390f35b3480156102b757600080fd5b506102d260048036038101906102cd9190611697565b610809565b6040516102df9190611954565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a91906117af565b610a59565b60405161031c9190611646565b60405180910390f35b34801561033157600080fd5b5061033a610ac4565b6040516103479190611736565b60405180910390f35b34801561035c57600080fd5b50610377600480360381019061037291906119db565b610acb565b005b34801561038557600080fd5b506103a0600480360381019061039b9190611b6b565b610c29565b005b3480156103ae57600080fd5b506103c960048036038101906103c491906117af565b610d87565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190611c26565b610db0565b005b61040e60048036038101906104099190611c66565b610e06565b005b34801561041c57600080fd5b50610425610f89565b60405161043291906117fe565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104ae57506104ad82610f8f565b5b9050919050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756104e7816104e2610ff9565b611001565b600015156009600084815260200190815260200160002060009054906101000a900460ff1615151461054e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054590611d6a565b60405180910390fd5b60016009600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f19c567786dbc11ad5299760ad5f30bd149748ab79fafc96892ec5c0b0b72b735826040516105a991906117fe565b60405180910390a15050565b600060016000838152602001908152602001600020600101549050919050565b6105de826105b5565b6105ef816105ea610ff9565b611001565b6105f9838361109e565b505050565b610606610ff9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066a90611dfc565b60405180910390fd5b61067d828261117e565b5050565b3373ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071990611e68565b60405180910390fd5b7f429e5a8f4e1289616a7ca758e14bd7070bbdb21d11f443824c6738d41b4432c28160405161075191906117fe565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6003549081150290604051600060405180830381858888f193505050501580156107a1573d6000803e3d6000fd5b5050565b7f776ec9d2ad2a989538db0c4f163462480d393f71e37a4ffd62689425ec14a08e816040516107d491906117fe565b60405180910390a150565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60035481565b6108116114aa565b6040518060a001604052808381526020016004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160056000858152602001908152602001600020805461088f90611eb7565b80601f01602080910402602001604051908101604052809291908181526020018280546108bb90611eb7565b80156109085780601f106108dd57610100808354040283529160200191610908565b820191906000526020600020905b8154815290600101906020018083116108eb57829003601f168201915b5050505050815260200160066000858152602001908152602001600020805461093090611eb7565b80601f016020809104026020016040519081016040528092919081815260200182805461095c90611eb7565b80156109a95780601f1061097e576101008083540402835291602001916109a9565b820191906000526020600020905b81548152906001019060200180831161098c57829003601f168201915b505050505081526020016007600085815260200190815260200160002080546109d190611eb7565b80601f01602080910402602001604051908101604052809291908181526020018280546109fd90611eb7565b8015610a4a5780601f10610a1f57610100808354040283529160200191610a4a565b820191906000526020600020905b815481529060010190602001808311610a2d57829003601f168201915b50505050508152509050919050565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b600060019054906101000a900460ff1680610af1575060008054906101000a900460ff16155b610b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2790611f5b565b60405180910390fd5b60008060019054906101000a900460ff161590508015610b80576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8360038190555060005b83839050811015610bf957610be67fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775858584818110610bcc57610bcb611f7b565b5b9050602002016020810190610be19190611faa565b611260565b8080610bf190612006565b915050610b8a565b5060006002819055508015610c235760008060016101000a81548160ff0219169083151502179055505b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166004600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc190611e68565b60405180910390fd5b82600560008681526020019081526020016000209080519060200190610cf19291906114ef565b5081600660008681526020019081526020016000209080519060200190610d199291906114ef565b5080600760008681526020019081526020016000209080519060200190610d419291906114ef565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd86208433858585604051610d79959493929190612097565b60405180910390a150505050565b610d90826105b5565b610da181610d9c610ff9565b611001565b610dab838361117e565b505050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3360046000600254815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826005600060025481526020019081526020016000209080519060200190610e839291906114ef565b50816006600060025481526020019081526020016000209080519060200190610ead9291906114ef565b50806007600060025481526020019081526020016000209080519060200190610ed79291906114ef565b5042600860006002548152602001908152602001600020819055507f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc3860025433600560006002548152602001908152602001600020600660006002548152602001908152602001600020600760006002548152602001908152602001600020604051610f67959493929190612194565b60405180910390a16001600254610f7e91906121fc565b600281905550505050565b60025481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b61100b8282610a59565b61109a576110308173ffffffffffffffffffffffffffffffffffffffff16601461126e565b61103e8360001c602061126e565b60405160200161104f929190612326565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110919190612360565b60405180910390fd5b5050565b6110a88282610a59565b61117a57600180600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061111f610ff9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6111888282610a59565b1561125c5760006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611201610ff9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61126a828261109e565b5050565b6060600060028360026112819190612382565b61128b91906121fc565b67ffffffffffffffff8111156112a4576112a3611a40565b5b6040519080825280601f01601f1916602001820160405280156112d65781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061130e5761130d611f7b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061137257611371611f7b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026113b29190612382565b6113bc91906121fc565b90505b600181111561145c577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106113fe576113fd611f7b565b5b1a60f81b82828151811061141557611414611f7b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611455906123dc565b90506113bf565b50600084146114a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149790612452565b60405180910390fd5b8091505092915050565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b8280546114fb90611eb7565b90600052602060002090601f01602090048101928261151d5760008555611564565b82601f1061153657805160ff1916838001178555611564565b82800160010185558215611564579182015b82811115611563578251825591602001919060010190611548565b5b5090506115719190611575565b5090565b5b8082111561158e576000816000905550600101611576565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6115db816115a6565b81146115e657600080fd5b50565b6000813590506115f8816115d2565b92915050565b6000602082840312156116145761161361159c565b5b6000611622848285016115e9565b91505092915050565b60008115159050919050565b6116408161162b565b82525050565b600060208201905061165b6000830184611637565b92915050565b6000819050919050565b61167481611661565b811461167f57600080fd5b50565b6000813590506116918161166b565b92915050565b6000602082840312156116ad576116ac61159c565b5b60006116bb84828501611682565b91505092915050565b6000819050919050565b6116d7816116c4565b81146116e257600080fd5b50565b6000813590506116f4816116ce565b92915050565b6000602082840312156117105761170f61159c565b5b600061171e848285016116e5565b91505092915050565b611730816116c4565b82525050565b600060208201905061174b6000830184611727565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061177c82611751565b9050919050565b61178c81611771565b811461179757600080fd5b50565b6000813590506117a981611783565b92915050565b600080604083850312156117c6576117c561159c565b5b60006117d4858286016116e5565b92505060206117e58582860161179a565b9150509250929050565b6117f881611661565b82525050565b600060208201905061181360008301846117ef565b92915050565b61182281611661565b82525050565b61183181611771565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611871578082015181840152602081019050611856565b83811115611880576000848401525b50505050565b6000601f19601f8301169050919050565b60006118a282611837565b6118ac8185611842565b93506118bc818560208601611853565b6118c581611886565b840191505092915050565b600060a0830160008301516118e86000860182611819565b5060208301516118fb6020860182611828565b50604083015184820360408601526119138282611897565b9150506060830151848203606086015261192d8282611897565b915050608083015184820360808601526119478282611897565b9150508091505092915050565b6000602082019050818103600083015261196e81846118d0565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261199b5761199a611976565b5b8235905067ffffffffffffffff8111156119b8576119b761197b565b5b6020830191508360208202830111156119d4576119d3611980565b5b9250929050565b6000806000604084860312156119f4576119f361159c565b5b6000611a0286828701611682565b935050602084013567ffffffffffffffff811115611a2357611a226115a1565b5b611a2f86828701611985565b92509250509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611a7882611886565b810181811067ffffffffffffffff82111715611a9757611a96611a40565b5b80604052505050565b6000611aaa611592565b9050611ab68282611a6f565b919050565b600067ffffffffffffffff821115611ad657611ad5611a40565b5b611adf82611886565b9050602081019050919050565b82818337600083830152505050565b6000611b0e611b0984611abb565b611aa0565b905082815260208101848484011115611b2a57611b29611a3b565b5b611b35848285611aec565b509392505050565b600082601f830112611b5257611b51611976565b5b8135611b62848260208601611afb565b91505092915050565b60008060008060808587031215611b8557611b8461159c565b5b6000611b9387828801611682565b945050602085013567ffffffffffffffff811115611bb457611bb36115a1565b5b611bc087828801611b3d565b935050604085013567ffffffffffffffff811115611be157611be06115a1565b5b611bed87828801611b3d565b925050606085013567ffffffffffffffff811115611c0e57611c0d6115a1565b5b611c1a87828801611b3d565b91505092959194509250565b60008060408385031215611c3d57611c3c61159c565b5b6000611c4b8582860161179a565b9250506020611c5c85828601611682565b9150509250929050565b600080600060608486031215611c7f57611c7e61159c565b5b600084013567ffffffffffffffff811115611c9d57611c9c6115a1565b5b611ca986828701611b3d565b935050602084013567ffffffffffffffff811115611cca57611cc96115a1565b5b611cd686828701611b3d565b925050604084013567ffffffffffffffff811115611cf757611cf66115a1565b5b611d0386828701611b3d565b9150509250925092565b600082825260208201905092915050565b7f416c726561647920766572696669656400000000000000000000000000000000600082015250565b6000611d54601083611d0d565b9150611d5f82611d1e565b602082019050919050565b60006020820190508181036000830152611d8381611d47565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000611de6602f83611d0d565b9150611df182611d8a565b604082019050919050565b60006020820190508181036000830152611e1581611dd9565b9050919050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000611e52601183611d0d565b9150611e5d82611e1c565b602082019050919050565b60006020820190508181036000830152611e8181611e45565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ecf57607f821691505b60208210811415611ee357611ee2611e88565b5b50919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000611f45602e83611d0d565b9150611f5082611ee9565b604082019050919050565b60006020820190508181036000830152611f7481611f38565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215611fc057611fbf61159c565b5b6000611fce8482850161179a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061201182611661565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561204457612043611fd7565b5b600182019050919050565b61205881611771565b82525050565b600061206982611837565b6120738185611d0d565b9350612083818560208601611853565b61208c81611886565b840191505092915050565b600060a0820190506120ac60008301886117ef565b6120b9602083018761204f565b81810360408301526120cb818661205e565b905081810360608301526120df818561205e565b905081810360808301526120f3818461205e565b90509695505050505050565b60008190508160005260206000209050919050565b6000815461212181611eb7565b61212b8186611d0d565b9450600182166000811461214657600181146121585761218b565b60ff198316865260208601935061218b565b612161856120ff565b60005b8381101561218357815481890152600182019150602081019050612164565b808801955050505b50505092915050565b600060a0820190506121a960008301886117ef565b6121b6602083018761204f565b81810360408301526121c88186612114565b905081810360608301526121dc8185612114565b905081810360808301526121f08184612114565b90509695505050505050565b600061220782611661565b915061221283611661565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561224757612246611fd7565b5b828201905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000612293601783612252565b915061229e8261225d565b601782019050919050565b60006122b482611837565b6122be8185612252565b93506122ce818560208601611853565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000612310601183612252565b915061231b826122da565b601182019050919050565b600061233182612286565b915061233d82856122a9565b915061234882612303565b915061235482846122a9565b91508190509392505050565b6000602082019050818103600083015261237a818461205e565b905092915050565b600061238d82611661565b915061239883611661565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123d1576123d0611fd7565b5b828202905092915050565b60006123e782611661565b915060008214156123fb576123fa611fd7565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061243c602083611d0d565b915061244782612406565b602082019050919050565b6000602082019050818103600083015261246b8161242f565b905091905056fea2646970667358221220f4f34f49ab6a46f19754585d1efcd657815b4da212d138cbd9be83473d5405ed64736f6c63430008090033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A8 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x109 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x887E4B86 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xAB444F28 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xAB444F28 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0xE58CDD90 EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0xE73173A4 EQ PUSH2 0x3F4 JUMPI DUP1 PUSH4 0xF9A6CBAE EQ PUSH2 0x410 JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0x887E4B86 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x325 JUMPI DUP1 PUSH4 0xA920B78C EQ PUSH2 0x350 JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x5CADD4A9 EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0x6DF693D3 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0x75B238FC EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0x7BA13680 EQ PUSH2 0x280 JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x1805D79F EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1B1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x135 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x130 SWAP2 SWAP1 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x142 SWAP2 SWAP1 PUSH2 0x1646 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x172 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16D SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST PUSH2 0x4B5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x196 SWAP2 SWAP1 PUSH2 0x16FA JUMP JUMPDEST PUSH2 0x5B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x1736 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH2 0x5D5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x201 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH2 0x5FE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST PUSH2 0x681 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST PUSH2 0x7A5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x7DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0x1736 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x803 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CD SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST PUSH2 0x809 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DF SWAP2 SWAP1 PUSH2 0x1954 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30A SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH2 0xA59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31C SWAP2 SWAP1 PUSH2 0x1646 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33A PUSH2 0xAC4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x347 SWAP2 SWAP1 PUSH2 0x1736 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x377 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x372 SWAP2 SWAP1 PUSH2 0x19DB JUMP JUMPDEST PUSH2 0xACB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x385 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39B SWAP2 SWAP1 PUSH2 0x1B6B JUMP JUMPDEST PUSH2 0xC29 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C4 SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH2 0xD87 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x1C26 JUMP JUMPDEST PUSH2 0xDB0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x40E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x409 SWAP2 SWAP1 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0xE06 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x425 PUSH2 0xF89 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x432 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4AE JUMPI POP PUSH2 0x4AD DUP3 PUSH2 0xF8F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 PUSH2 0x4E7 DUP2 PUSH2 0x4E2 PUSH2 0xFF9 JUMP JUMPDEST PUSH2 0x1001 JUMP JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x54E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP1 PUSH2 0x1D6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x19C567786DBC11AD5299760AD5F30BD149748AB79FAFC96892EC5C0B0B72B735 DUP3 PUSH1 0x40 MLOAD PUSH2 0x5A9 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5DE DUP3 PUSH2 0x5B5 JUMP JUMPDEST PUSH2 0x5EF DUP2 PUSH2 0x5EA PUSH2 0xFF9 JUMP JUMPDEST PUSH2 0x1001 JUMP JUMPDEST PUSH2 0x5F9 DUP4 DUP4 PUSH2 0x109E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x606 PUSH2 0xFF9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x673 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x66A SWAP1 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67D DUP3 DUP3 PUSH2 0x117E JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x722 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x719 SWAP1 PUSH2 0x1E68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x429E5A8F4E1289616A7CA758E14BD7070BBDB21D11F443824C6738D41B4432C2 DUP2 PUSH1 0x40 MLOAD PUSH2 0x751 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x3 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x7A1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x776EC9D2AD2A989538DB0C4F163462480D393F71E37A4FFD62689425EC14A08E DUP2 PUSH1 0x40 MLOAD PUSH2 0x7D4 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x811 PUSH2 0x14AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x88F SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x8BB SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x908 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x908 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x930 SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x95C SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9A9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x97E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9A9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x98C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x9D1 SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9FD SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA4A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA1F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA4A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA2D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0xAF1 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0xB30 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB27 SWAP1 PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0xB80 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST DUP4 PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xBF9 JUMPI PUSH2 0xBE6 PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xBCC JUMPI PUSH2 0xBCB PUSH2 0x1F7B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xBE1 SWAP2 SWAP1 PUSH2 0x1FAA JUMP JUMPDEST PUSH2 0x1260 JUMP JUMPDEST DUP1 DUP1 PUSH2 0xBF1 SWAP1 PUSH2 0x2006 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB8A JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x2 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0xC23 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCCA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCC1 SWAP1 PUSH2 0x1E68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xCF1 SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP DUP2 PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xD19 SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP DUP1 PUSH1 0x7 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xD41 SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP PUSH32 0xFD025D83852F29D01B58FD4B19D8CFE0E12AF0EE9F31A7E273EA765CD4DD8620 DUP5 CALLER DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0xD79 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2097 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0xD90 DUP3 PUSH2 0x5B5 JUMP JUMPDEST PUSH2 0xDA1 DUP2 PUSH2 0xD9C PUSH2 0xFF9 JUMP JUMPDEST PUSH2 0x1001 JUMP JUMPDEST PUSH2 0xDAB DUP4 DUP4 PUSH2 0x117E JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST CALLER PUSH1 0x4 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x5 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xE83 SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP DUP2 PUSH1 0x6 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xEAD SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP DUP1 PUSH1 0x7 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xED7 SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP TIMESTAMP PUSH1 0x8 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x54362B36D34EFDDA9F90402E88C73FD5B6D780EA5A94052317E4664B31AACC38 PUSH1 0x2 SLOAD CALLER PUSH1 0x5 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xF67 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2194 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x2 SLOAD PUSH2 0xF7E SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x100B DUP3 DUP3 PUSH2 0xA59 JUMP JUMPDEST PUSH2 0x109A JUMPI PUSH2 0x1030 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x14 PUSH2 0x126E JUMP JUMPDEST PUSH2 0x103E DUP4 PUSH1 0x0 SHR PUSH1 0x20 PUSH2 0x126E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x104F SWAP3 SWAP2 SWAP1 PUSH2 0x2326 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1091 SWAP2 SWAP1 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x10A8 DUP3 DUP3 PUSH2 0xA59 JUMP JUMPDEST PUSH2 0x117A JUMPI PUSH1 0x1 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x111F PUSH2 0xFF9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1188 DUP3 DUP3 PUSH2 0xA59 JUMP JUMPDEST ISZERO PUSH2 0x125C JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1201 PUSH2 0xFF9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x126A DUP3 DUP3 PUSH2 0x109E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x2 DUP4 PUSH1 0x2 PUSH2 0x1281 SWAP2 SWAP1 PUSH2 0x2382 JUMP JUMPDEST PUSH2 0x128B SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12A4 JUMPI PUSH2 0x12A3 PUSH2 0x1A40 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x12D6 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x130E JUMPI PUSH2 0x130D PUSH2 0x1F7B JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1372 JUMPI PUSH2 0x1371 PUSH2 0x1F7B JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH1 0x1 DUP5 PUSH1 0x2 PUSH2 0x13B2 SWAP2 SWAP1 PUSH2 0x2382 JUMP JUMPDEST PUSH2 0x13BC SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x145C JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xF DUP7 AND PUSH1 0x10 DUP2 LT PUSH2 0x13FE JUMPI PUSH2 0x13FD PUSH2 0x1F7B JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1415 JUMPI PUSH2 0x1414 PUSH2 0x1F7B JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 DUP6 SWAP1 SHR SWAP5 POP DUP1 PUSH2 0x1455 SWAP1 PUSH2 0x23DC JUMP JUMPDEST SWAP1 POP PUSH2 0x13BF JUMP JUMPDEST POP PUSH1 0x0 DUP5 EQ PUSH2 0x14A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1497 SWAP1 PUSH2 0x2452 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x14FB SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x151D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1564 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1536 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1564 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1564 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1563 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1548 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1571 SWAP2 SWAP1 PUSH2 0x1575 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x158E JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1576 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15DB DUP2 PUSH2 0x15A6 JUMP JUMPDEST DUP2 EQ PUSH2 0x15E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x15F8 DUP2 PUSH2 0x15D2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1614 JUMPI PUSH2 0x1613 PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1622 DUP5 DUP3 DUP6 ADD PUSH2 0x15E9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1640 DUP2 PUSH2 0x162B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x165B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1637 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1674 DUP2 PUSH2 0x1661 JUMP JUMPDEST DUP2 EQ PUSH2 0x167F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1691 DUP2 PUSH2 0x166B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16AD JUMPI PUSH2 0x16AC PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x16BB DUP5 DUP3 DUP6 ADD PUSH2 0x1682 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16D7 DUP2 PUSH2 0x16C4 JUMP JUMPDEST DUP2 EQ PUSH2 0x16E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F4 DUP2 PUSH2 0x16CE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1710 JUMPI PUSH2 0x170F PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x171E DUP5 DUP3 DUP6 ADD PUSH2 0x16E5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1730 DUP2 PUSH2 0x16C4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x174B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1727 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x177C DUP3 PUSH2 0x1751 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x178C DUP2 PUSH2 0x1771 JUMP JUMPDEST DUP2 EQ PUSH2 0x1797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x17A9 DUP2 PUSH2 0x1783 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17C6 JUMPI PUSH2 0x17C5 PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17D4 DUP6 DUP3 DUP7 ADD PUSH2 0x16E5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x17E5 DUP6 DUP3 DUP7 ADD PUSH2 0x179A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x17F8 DUP2 PUSH2 0x1661 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1813 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x17EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1822 DUP2 PUSH2 0x1661 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1831 DUP2 PUSH2 0x1771 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1871 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1856 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A2 DUP3 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x18AC DUP2 DUP6 PUSH2 0x1842 JUMP JUMPDEST SWAP4 POP PUSH2 0x18BC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1853 JUMP JUMPDEST PUSH2 0x18C5 DUP2 PUSH2 0x1886 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x18E8 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x1819 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x18FB PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1828 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1913 DUP3 DUP3 PUSH2 0x1897 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x192D DUP3 DUP3 PUSH2 0x1897 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x1947 DUP3 DUP3 PUSH2 0x1897 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x196E DUP2 DUP5 PUSH2 0x18D0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x199B JUMPI PUSH2 0x199A PUSH2 0x1976 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19B8 JUMPI PUSH2 0x19B7 PUSH2 0x197B JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x19D4 JUMPI PUSH2 0x19D3 PUSH2 0x1980 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x19F4 JUMPI PUSH2 0x19F3 PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A02 DUP7 DUP3 DUP8 ADD PUSH2 0x1682 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A23 JUMPI PUSH2 0x1A22 PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1A2F DUP7 DUP3 DUP8 ADD PUSH2 0x1985 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1A78 DUP3 PUSH2 0x1886 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1A97 JUMPI PUSH2 0x1A96 PUSH2 0x1A40 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AAA PUSH2 0x1592 JUMP JUMPDEST SWAP1 POP PUSH2 0x1AB6 DUP3 DUP3 PUSH2 0x1A6F JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1AD6 JUMPI PUSH2 0x1AD5 PUSH2 0x1A40 JUMP JUMPDEST JUMPDEST PUSH2 0x1ADF DUP3 PUSH2 0x1886 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B0E PUSH2 0x1B09 DUP5 PUSH2 0x1ABB JUMP JUMPDEST PUSH2 0x1AA0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1B2A JUMPI PUSH2 0x1B29 PUSH2 0x1A3B JUMP JUMPDEST JUMPDEST PUSH2 0x1B35 DUP5 DUP3 DUP6 PUSH2 0x1AEC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1B52 JUMPI PUSH2 0x1B51 PUSH2 0x1976 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1B62 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1AFB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1B85 JUMPI PUSH2 0x1B84 PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B93 DUP8 DUP3 DUP9 ADD PUSH2 0x1682 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BB4 JUMPI PUSH2 0x1BB3 PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1BC0 DUP8 DUP3 DUP9 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE1 JUMPI PUSH2 0x1BE0 PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1BED DUP8 DUP3 DUP9 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C0E JUMPI PUSH2 0x1C0D PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1C1A DUP8 DUP3 DUP9 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C3D JUMPI PUSH2 0x1C3C PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C4B DUP6 DUP3 DUP7 ADD PUSH2 0x179A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C5C DUP6 DUP3 DUP7 ADD PUSH2 0x1682 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1C7F JUMPI PUSH2 0x1C7E PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C9D JUMPI PUSH2 0x1C9C PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1CA9 DUP7 DUP3 DUP8 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CCA JUMPI PUSH2 0x1CC9 PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1CD6 DUP7 DUP3 DUP8 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CF7 JUMPI PUSH2 0x1CF6 PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1D03 DUP7 DUP3 DUP8 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416C726561647920766572696669656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D54 PUSH1 0x10 DUP4 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 POP PUSH2 0x1D5F DUP3 PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1D83 DUP2 PUSH2 0x1D47 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DE6 PUSH1 0x2F DUP4 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 POP PUSH2 0x1DF1 DUP3 PUSH2 0x1D8A JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1E15 DUP2 PUSH2 0x1DD9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F662064617070000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E52 PUSH1 0x11 DUP4 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 POP PUSH2 0x1E5D DUP3 PUSH2 0x1E1C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1E81 DUP2 PUSH2 0x1E45 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1ECF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1EE3 JUMPI PUSH2 0x1EE2 PUSH2 0x1E88 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F45 PUSH1 0x2E DUP4 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 POP PUSH2 0x1F50 DUP3 PUSH2 0x1EE9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F74 DUP2 PUSH2 0x1F38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FC0 JUMPI PUSH2 0x1FBF PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FCE DUP5 DUP3 DUP6 ADD PUSH2 0x179A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2011 DUP3 PUSH2 0x1661 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x2044 JUMPI PUSH2 0x2043 PUSH2 0x1FD7 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2058 DUP2 PUSH2 0x1771 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2069 DUP3 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x2073 DUP2 DUP6 PUSH2 0x1D0D JUMP JUMPDEST SWAP4 POP PUSH2 0x2083 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1853 JUMP JUMPDEST PUSH2 0x208C DUP2 PUSH2 0x1886 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x20AC PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x20B9 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x204F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x20CB DUP2 DUP7 PUSH2 0x205E JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x20DF DUP2 DUP6 PUSH2 0x205E JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x20F3 DUP2 DUP5 PUSH2 0x205E JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2121 DUP2 PUSH2 0x1EB7 JUMP JUMPDEST PUSH2 0x212B DUP2 DUP7 PUSH2 0x1D0D JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2146 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2158 JUMPI PUSH2 0x218B JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP PUSH2 0x218B JUMP JUMPDEST PUSH2 0x2161 DUP6 PUSH2 0x20FF JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2183 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2164 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x21A9 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x21B6 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x204F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x21C8 DUP2 DUP7 PUSH2 0x2114 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x21DC DUP2 DUP6 PUSH2 0x2114 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x21F0 DUP2 DUP5 PUSH2 0x2114 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2207 DUP3 PUSH2 0x1661 JUMP JUMPDEST SWAP2 POP PUSH2 0x2212 DUP4 PUSH2 0x1661 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2247 JUMPI PUSH2 0x2246 PUSH2 0x1FD7 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2293 PUSH1 0x17 DUP4 PUSH2 0x2252 JUMP JUMPDEST SWAP2 POP PUSH2 0x229E DUP3 PUSH2 0x225D JUMP JUMPDEST PUSH1 0x17 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22B4 DUP3 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x22BE DUP2 DUP6 PUSH2 0x2252 JUMP JUMPDEST SWAP4 POP PUSH2 0x22CE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1853 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2310 PUSH1 0x11 DUP4 PUSH2 0x2252 JUMP JUMPDEST SWAP2 POP PUSH2 0x231B DUP3 PUSH2 0x22DA JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2331 DUP3 PUSH2 0x2286 JUMP JUMPDEST SWAP2 POP PUSH2 0x233D DUP3 DUP6 PUSH2 0x22A9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2348 DUP3 PUSH2 0x2303 JUMP JUMPDEST SWAP2 POP PUSH2 0x2354 DUP3 DUP5 PUSH2 0x22A9 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x237A DUP2 DUP5 PUSH2 0x205E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238D DUP3 PUSH2 0x1661 JUMP JUMPDEST SWAP2 POP PUSH2 0x2398 DUP4 PUSH2 0x1661 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x23D1 JUMPI PUSH2 0x23D0 PUSH2 0x1FD7 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E7 DUP3 PUSH2 0x1661 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x23FB JUMPI PUSH2 0x23FA PUSH2 0x1FD7 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x243C PUSH1 0x20 DUP4 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 POP PUSH2 0x2447 DUP3 PUSH2 0x2406 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x246B DUP2 PUSH2 0x242F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL RETURN 0x4F 0x49 0xAB PUSH11 0x46F19754585D1EFCD65781 JUMPDEST 0x4D LOG2 SLT 0xD1 CODESIZE 0xCB 0xD9 0xBE DUP4 SELFBALANCE RETURNDATASIZE SLOAD SDIV 0xED PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ", - "sourceMap": "198:3038:7:-:0;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@ADMIN_ROLE_701": { - "entryPoint": 2015, - "id": 701, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@DEFAULT_ADMIN_ROLE_73": { - "entryPoint": 2756, - "id": 73, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_checkRole_170": { - "entryPoint": 4097, - "id": 170, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_grantRole_322": { - "entryPoint": 4254, - "id": 322, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_msgSender_439": { - "entryPoint": 4089, - "id": 439, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_revokeRole_353": { - "entryPoint": 4478, - "id": 353, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_setupRole_262": { - "entryPoint": 4704, - "id": 262, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@amountToPay_705": { - "entryPoint": 2051, - "id": 705, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@appID_703": { - "entryPoint": 3977, - "id": 703, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@deleteApp_1019": { - "entryPoint": 1957, - "id": 1019, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@getDAppData_952": { - "entryPoint": 2057, - "id": 952, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getRoleAdmin_185": { - "entryPoint": 1461, - "id": 185, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@grantRole_205": { - "entryPoint": 1493, - "id": 205, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@hasRole_127": { - "entryPoint": 2649, - "id": 127, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@initialize_804": { - "entryPoint": 2763, - "id": 804, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@releaseDApp_981": { - "entryPoint": 1665, - "id": 981, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@renounceRole_248": { - "entryPoint": 1534, - "id": 248, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@revokeRole_225": { - "entryPoint": 3463, - "id": 225, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@submitDApp_878": { - "entryPoint": 3590, - "id": 878, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@supportsInterface_108": { - "entryPoint": 1083, - "id": 108, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@supportsInterface_675": { - "entryPoint": 3983, - "id": 675, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@toHexString_651": { - "entryPoint": 4718, - "id": 651, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@transferAppOwner_1033": { - "entryPoint": 3504, - "id": 1033, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@updateDApp_927": { - "entryPoint": 3113, - "id": 927, - "parameterSlots": 4, - "returnSlots": 0 - }, - "@verifyDApp_1009": { - "entryPoint": 1205, - "id": 1009, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_decode_available_length_t_string_memory_ptr": { - "entryPoint": 6907, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_t_address": { - "entryPoint": 6042, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { - "entryPoint": 6533, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_t_bytes32": { - "entryPoint": 5861, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes4": { - "entryPoint": 5609, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_string_memory_ptr": { - "entryPoint": 6973, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_uint256": { - "entryPoint": 5762, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 8106, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_uint256": { - "entryPoint": 7206, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes32": { - "entryPoint": 5882, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes32t_address": { - "entryPoint": 6063, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes4": { - "entryPoint": 5630, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr": { - "entryPoint": 7270, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": 5783, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256t_array$_t_address_$dyn_calldata_ptr": { - "entryPoint": 6619, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr": { - "entryPoint": 7019, - "id": null, - "parameterSlots": 2, - "returnSlots": 4 - }, - "abi_encode_t_address_to_t_address": { - "entryPoint": 6184, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_address_to_t_address_fromStack": { - "entryPoint": 8271, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bool_to_t_bool_fromStack": { - "entryPoint": 5687, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bytes32_to_t_bytes32_fromStack": { - "entryPoint": 5927, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr": { - "entryPoint": 6295, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { - "entryPoint": 8286, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 8873, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack": { - "entryPoint": 8468, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack": { - "entryPoint": 9263, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack": { - "entryPoint": 7749, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5_to_t_string_memory_ptr_fromStack": { - "entryPoint": 7495, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack": { - "entryPoint": 7992, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 8838, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 8963, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack": { - "entryPoint": 7641, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_struct$_App_$815_memory_ptr_to_t_struct$_App_$815_memory_ptr_fromStack": { - "entryPoint": 6352, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_uint256_to_t_uint256": { - "entryPoint": 6169, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 6127, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 8998, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": 5702, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { - "entryPoint": 5942, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 9056, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 9298, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 7784, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 7530, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 8027, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 7676, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_App_$815_memory_ptr__to_t_struct$_App_$815_memory_ptr__fromStack_reversed": { - "entryPoint": 6484, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": 6142, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 8343, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 8596, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "allocate_memory": { - "entryPoint": 6816, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": 5522, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "array_allocation_size_t_string_memory_ptr": { - "entryPoint": 6843, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_dataslot_t_string_storage": { - "entryPoint": 8447, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_length_t_string_memory_ptr": { - "entryPoint": 6199, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr": { - "entryPoint": 6210, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { - "entryPoint": 7437, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 8786, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_add_t_uint256": { - "entryPoint": 8700, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_mul_t_uint256": { - "entryPoint": 9090, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "cleanup_t_address": { - "entryPoint": 6001, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bool": { - "entryPoint": 5675, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes32": { - "entryPoint": 5828, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes4": { - "entryPoint": 5542, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 5969, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 5729, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "copy_calldata_to_memory": { - "entryPoint": 6892, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_memory_to_memory": { - "entryPoint": 6227, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "decrement_t_uint256": { - "entryPoint": 9180, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_byte_array_length": { - "entryPoint": 7863, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "finalize_allocation": { - "entryPoint": 6767, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "increment_t_uint256": { - "entryPoint": 8198, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x11": { - "entryPoint": 8151, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x22": { - "entryPoint": 7816, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x32": { - "entryPoint": 8059, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 6720, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { - "entryPoint": 6523, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { - "entryPoint": 6518, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { - "entryPoint": 6528, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { - "entryPoint": 6715, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": 5537, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 5532, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "round_up_to_mul_of_32": { - "entryPoint": 6278, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2": { - "entryPoint": 9222, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5": { - "entryPoint": 7708, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5": { - "entryPoint": 7454, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759": { - "entryPoint": 7913, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874": { - "entryPoint": 8797, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69": { - "entryPoint": 8922, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b": { - "entryPoint": 7562, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_address": { - "entryPoint": 6019, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes32": { - "entryPoint": 5838, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes4": { - "entryPoint": 5586, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint256": { - "entryPoint": 5739, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:27974:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "47:35:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "57:19:8", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "73:2:8", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "67:5:8" - }, - "nodeType": "YulFunctionCall", - "src": "67:9:8" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "57:6:8" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "40:6:8", - "type": "" - } - ], - "src": "7:75:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "177:28:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "194:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "197:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "187:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "187:12:8" - }, - "nodeType": "YulExpressionStatement", - "src": "187:12:8" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulFunctionDefinition", - "src": "88:117:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "300:28:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "317:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "320:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "310:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "310:12:8" - }, - "nodeType": "YulExpressionStatement", - "src": "310:12:8" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulFunctionDefinition", - "src": "211:117:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "378:105:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "388:89:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "403:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "410:66:8", - "type": "", - "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "399:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "399:78:8" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "388:7:8" - } - ] - } - ] - }, - "name": "cleanup_t_bytes4", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "360:5:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "370:7:8", - "type": "" - } - ], - "src": "334:149:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "531:78:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "587:16:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "596:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "599:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "589:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "589:12:8" - }, - "nodeType": "YulExpressionStatement", - "src": "589:12:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "554:5:8" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "578:5:8" - } - ], - "functionName": { - "name": "cleanup_t_bytes4", - "nodeType": "YulIdentifier", - "src": "561:16:8" - }, - "nodeType": "YulFunctionCall", - "src": "561:23:8" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "551:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "551:34:8" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "544:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "544:42:8" - }, - "nodeType": "YulIf", - "src": "541:62:8" - } - ] - }, - "name": "validator_revert_t_bytes4", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "524:5:8", - "type": "" - } - ], - "src": "489:120:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "666:86:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "676:29:8", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "698:6:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "685:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "685:20:8" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "676:5:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "740:5:8" - } - ], - "functionName": { - "name": "validator_revert_t_bytes4", - "nodeType": "YulIdentifier", - "src": "714:25:8" - }, - "nodeType": "YulFunctionCall", - "src": "714:32:8" - }, - "nodeType": "YulExpressionStatement", - "src": "714:32:8" - } - ] - }, - "name": "abi_decode_t_bytes4", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "644:6:8", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "652:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "660:5:8", - "type": "" - } - ], - "src": "615:137:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "823:262:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "869:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "871:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "871:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "871:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "844:7:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "853:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "840:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "840:23:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "865:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "836:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "836:32:8" - }, - "nodeType": "YulIf", - "src": "833:119:8" - }, - { - "nodeType": "YulBlock", - "src": "962:116:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "977:15:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "991:1:8", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "981:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1006:62:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1040:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1051:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1036:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "1036:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1060:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_bytes4", - "nodeType": "YulIdentifier", - "src": "1016:19:8" - }, - "nodeType": "YulFunctionCall", - "src": "1016:52:8" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1006:6:8" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes4", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "793:9:8", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "804:7:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "816:6:8", - "type": "" - } - ], - "src": "758:327:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1133:48:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1143:32:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1168:5:8" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1161:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "1161:13:8" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1154:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "1154:21:8" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "1143:7:8" - } - ] - } - ] - }, - "name": "cleanup_t_bool", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1115:5:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "1125:7:8", - "type": "" - } - ], - "src": "1091:90:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1246:50:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1263:3:8" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1283:5:8" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nodeType": "YulIdentifier", - "src": "1268:14:8" - }, - "nodeType": "YulFunctionCall", - "src": "1268:21:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1256:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "1256:34:8" - }, - "nodeType": "YulExpressionStatement", - "src": "1256:34:8" - } - ] - }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1234:5:8", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1241:3:8", - "type": "" - } - ], - "src": "1187:109:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1394:118:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1404:26:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1416:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1427:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1412:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "1412:18:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1404:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1478:6:8" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1491:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1502:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1487:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "1487:17:8" - } - ], - "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nodeType": "YulIdentifier", - "src": "1440:37:8" - }, - "nodeType": "YulFunctionCall", - "src": "1440:65:8" - }, - "nodeType": "YulExpressionStatement", - "src": "1440:65:8" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1366:9:8", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1378:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "1389:4:8", - "type": "" - } - ], - "src": "1302:210:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1563:32:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1573:16:8", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1584:5:8" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "1573:7:8" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1545:5:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "1555:7:8", - "type": "" - } - ], - "src": "1518:77:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1644:79:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "1701:16:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1710:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1713:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1703:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "1703:12:8" - }, - "nodeType": "YulExpressionStatement", - "src": "1703:12:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1667:5:8" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1692:5:8" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "1674:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "1674:24:8" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "1664:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "1664:35:8" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1657:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "1657:43:8" - }, - "nodeType": "YulIf", - "src": "1654:63:8" - } - ] - }, - "name": "validator_revert_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1637:5:8", - "type": "" - } - ], - "src": "1601:122:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1781:87:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1791:29:8", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1813:6:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1800:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "1800:20:8" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1791:5:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1856:5:8" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nodeType": "YulIdentifier", - "src": "1829:26:8" - }, - "nodeType": "YulFunctionCall", - "src": "1829:33:8" - }, - "nodeType": "YulExpressionStatement", - "src": "1829:33:8" - } - ] - }, - "name": "abi_decode_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1759:6:8", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1767:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1775:5:8", - "type": "" - } - ], - "src": "1729:139:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1940:263:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "1986:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "1988:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "1988:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "1988:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1961:7:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1970:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1957:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "1957:23:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1982:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1953:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "1953:32:8" - }, - "nodeType": "YulIf", - "src": "1950:119:8" - }, - { - "nodeType": "YulBlock", - "src": "2079:117:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2094:15:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2108:1:8", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "2098:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "2123:63:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2158:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2169:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2154:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "2154:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2178:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "2133:20:8" - }, - "nodeType": "YulFunctionCall", - "src": "2133:53:8" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2123:6:8" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1910:9:8", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "1921:7:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1933:6:8", - "type": "" - } - ], - "src": "1874:329:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2254:32:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2264:16:8", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2275:5:8" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "2264:7:8" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2236:5:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "2246:7:8", - "type": "" - } - ], - "src": "2209:77:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2335:79:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "2392:16:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2401:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2404:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2394:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "2394:12:8" - }, - "nodeType": "YulExpressionStatement", - "src": "2394:12:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2358:5:8" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2383:5:8" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nodeType": "YulIdentifier", - "src": "2365:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "2365:24:8" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "2355:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "2355:35:8" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "2348:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "2348:43:8" - }, - "nodeType": "YulIf", - "src": "2345:63:8" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2328:5:8", - "type": "" - } - ], - "src": "2292:122:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2472:87:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2482:29:8", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2504:6:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "2491:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "2491:20:8" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2482:5:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2547:5:8" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nodeType": "YulIdentifier", - "src": "2520:26:8" - }, - "nodeType": "YulFunctionCall", - "src": "2520:33:8" - }, - "nodeType": "YulExpressionStatement", - "src": "2520:33:8" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "2450:6:8", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "2458:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2466:5:8", - "type": "" - } - ], - "src": "2420:139:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2631:263:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "2677:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "2679:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "2679:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "2679:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2652:7:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2661:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2648:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "2648:23:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2673:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "2644:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "2644:32:8" - }, - "nodeType": "YulIf", - "src": "2641:119:8" - }, - { - "nodeType": "YulBlock", - "src": "2770:117:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2785:15:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2799:1:8", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "2789:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "2814:63:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2849:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2860:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2845:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "2845:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2869:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nodeType": "YulIdentifier", - "src": "2824:20:8" - }, - "nodeType": "YulFunctionCall", - "src": "2824:53:8" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2814:6:8" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2601:9:8", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "2612:7:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2624:6:8", - "type": "" - } - ], - "src": "2565:329:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2965:53:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2982:3:8" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3005:5:8" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nodeType": "YulIdentifier", - "src": "2987:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "2987:24:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2975:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "2975:37:8" - }, - "nodeType": "YulExpressionStatement", - "src": "2975:37:8" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2953:5:8", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2960:3:8", - "type": "" - } - ], - "src": "2900:118:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3122:124:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3132:26:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3144:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3155:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3140:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "3140:18:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3132:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3212:6:8" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3225:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3236:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3221:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "3221:17:8" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulIdentifier", - "src": "3168:43:8" - }, - "nodeType": "YulFunctionCall", - "src": "3168:71:8" - }, - "nodeType": "YulExpressionStatement", - "src": "3168:71:8" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3094:9:8", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3106:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3117:4:8", - "type": "" - } - ], - "src": "3024:222:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3297:81:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3307:65:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3322:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3329:42:8", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3318:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "3318:54:8" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "3307:7:8" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "3279:5:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "3289:7:8", - "type": "" - } - ], - "src": "3252:126:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3429:51:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3439:35:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3468:5:8" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nodeType": "YulIdentifier", - "src": "3450:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "3450:24:8" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "3439:7:8" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "3411:5:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "3421:7:8", - "type": "" - } - ], - "src": "3384:96:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3529:79:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "3586:16:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3595:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3598:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3588:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "3588:12:8" - }, - "nodeType": "YulExpressionStatement", - "src": "3588:12:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3552:5:8" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3577:5:8" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "3559:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "3559:24:8" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "3549:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "3549:35:8" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "3542:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "3542:43:8" - }, - "nodeType": "YulIf", - "src": "3539:63:8" - } - ] - }, - "name": "validator_revert_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "3522:5:8", - "type": "" - } - ], - "src": "3486:122:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3666:87:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3676:29:8", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3698:6:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3685:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "3685:20:8" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3676:5:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3741:5:8" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nodeType": "YulIdentifier", - "src": "3714:26:8" - }, - "nodeType": "YulFunctionCall", - "src": "3714:33:8" - }, - "nodeType": "YulExpressionStatement", - "src": "3714:33:8" - } - ] - }, - "name": "abi_decode_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3644:6:8", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "3652:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "3660:5:8", - "type": "" - } - ], - "src": "3614:139:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3842:391:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "3888:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "3890:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "3890:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "3890:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3863:7:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3872:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3859:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "3859:23:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3884:2:8", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "3855:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "3855:32:8" - }, - "nodeType": "YulIf", - "src": "3852:119:8" - }, - { - "nodeType": "YulBlock", - "src": "3981:117:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3996:15:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4010:1:8", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4000:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4025:63:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4060:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4071:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4056:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "4056:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4080:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nodeType": "YulIdentifier", - "src": "4035:20:8" - }, - "nodeType": "YulFunctionCall", - "src": "4035:53:8" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4025:6:8" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "4108:118:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4123:16:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4137:2:8", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4127:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4153:63:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4188:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4199:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4184:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "4184:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4208:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "4163:20:8" - }, - "nodeType": "YulFunctionCall", - "src": "4163:53:8" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "4153:6:8" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3804:9:8", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "3815:7:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3827:6:8", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "3835:6:8", - "type": "" - } - ], - "src": "3759:474:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4304:53:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4321:3:8" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4344:5:8" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "4326:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "4326:24:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4314:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "4314:37:8" - }, - "nodeType": "YulExpressionStatement", - "src": "4314:37:8" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "4292:5:8", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "4299:3:8", - "type": "" - } - ], - "src": "4239:118:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4461:124:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4471:26:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4483:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4494:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4479:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "4479:18:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4471:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4551:6:8" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4564:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4575:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4560:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "4560:17:8" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "4507:43:8" - }, - "nodeType": "YulFunctionCall", - "src": "4507:71:8" - }, - "nodeType": "YulExpressionStatement", - "src": "4507:71:8" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4433:9:8", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4445:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4456:4:8", - "type": "" - } - ], - "src": "4363:222:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4646:53:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4663:3:8" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4686:5:8" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "4668:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "4668:24:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4656:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "4656:37:8" - }, - "nodeType": "YulExpressionStatement", - "src": "4656:37:8" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "4634:5:8", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "4641:3:8", - "type": "" - } - ], - "src": "4591:108:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4760:53:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4777:3:8" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4800:5:8" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "4782:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "4782:24:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4770:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "4770:37:8" - }, - "nodeType": "YulExpressionStatement", - "src": "4770:37:8" - } - ] - }, - "name": "abi_encode_t_address_to_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "4748:5:8", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "4755:3:8", - "type": "" - } - ], - "src": "4705:108:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4878:40:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4889:22:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4905:5:8" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "4899:5:8" - }, - "nodeType": "YulFunctionCall", - "src": "4899:12:8" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4889:6:8" - } - ] - } - ] - }, - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "4861:5:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "4871:6:8", - "type": "" - } - ], - "src": "4819:99:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5010:73:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5027:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5032:6:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5020:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "5020:19:8" - }, - "nodeType": "YulExpressionStatement", - "src": "5020:19:8" - }, - { - "nodeType": "YulAssignment", - "src": "5048:29:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5067:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5072:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5063:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "5063:14:8" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "5048:11:8" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "4982:3:8", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "4987:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "4998:11:8", - "type": "" - } - ], - "src": "4924:159:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5138:258:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "5148:10:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5157:1:8", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "5152:1:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5217:63:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "5242:3:8" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5247:1:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5238:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "5238:11:8" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "5261:3:8" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5266:1:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5257:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "5257:11:8" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5251:5:8" - }, - "nodeType": "YulFunctionCall", - "src": "5251:18:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5231:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "5231:39:8" - }, - "nodeType": "YulExpressionStatement", - "src": "5231:39:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5178:1:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5181:6:8" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "5175:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "5175:13:8" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "5189:19:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "5191:15:8", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5200:1:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5203:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5196:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "5196:10:8" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5191:1:8" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "5171:3:8", - "statements": [] - }, - "src": "5167:113:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5314:76:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "5364:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5369:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5360:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "5360:16:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5378:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5353:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "5353:27:8" - }, - "nodeType": "YulExpressionStatement", - "src": "5353:27:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5295:1:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5298:6:8" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "5292:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "5292:13:8" - }, - "nodeType": "YulIf", - "src": "5289:101:8" - } - ] - }, - "name": "copy_memory_to_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "5120:3:8", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "5125:3:8", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "5130:6:8", - "type": "" - } - ], - "src": "5089:307:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5450:54:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "5460:38:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5478:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5485:2:8", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5474:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "5474:14:8" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5494:2:8", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "5490:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "5490:7:8" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "5470:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "5470:28:8" - }, - "variableNames": [ - { - "name": "result", - "nodeType": "YulIdentifier", - "src": "5460:6:8" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5433:5:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nodeType": "YulTypedName", - "src": "5443:6:8", - "type": "" - } - ], - "src": "5402:102:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5592:262:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "5602:53:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5649:5:8" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "5616:32:8" - }, - "nodeType": "YulFunctionCall", - "src": "5616:39:8" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "5606:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "5664:68:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5720:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5725:6:8" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "5671:48:8" - }, - "nodeType": "YulFunctionCall", - "src": "5671:61:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5664:3:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5767:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5774:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5763:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "5763:16:8" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5781:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5786:6:8" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "5741:21:8" - }, - "nodeType": "YulFunctionCall", - "src": "5741:52:8" - }, - "nodeType": "YulExpressionStatement", - "src": "5741:52:8" - }, - { - "nodeType": "YulAssignment", - "src": "5802:46:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5813:3:8" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5840:6:8" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "5818:21:8" - }, - "nodeType": "YulFunctionCall", - "src": "5818:29:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5809:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "5809:39:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "5802:3:8" - } - ] - } - ] - }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5573:5:8", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "5580:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "5588:3:8", - "type": "" - } - ], - "src": "5510:344:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6026:1167:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6036:26:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6052:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6057:4:8", - "type": "", - "value": "0xa0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6048:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6048:14:8" - }, - "variables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "6040:4:8", - "type": "" - } - ] - }, - { - "nodeType": "YulBlock", - "src": "6072:165:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6108:43:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6138:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6145:4:8", - "type": "", - "value": "0x00" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6134:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6134:16:8" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "6128:5:8" - }, - "nodeType": "YulFunctionCall", - "src": "6128:23:8" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "6112:12:8", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "6198:12:8" - }, - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6216:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6221:4:8", - "type": "", - "value": "0x00" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6212:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6212:14:8" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256", - "nodeType": "YulIdentifier", - "src": "6164:33:8" - }, - "nodeType": "YulFunctionCall", - "src": "6164:63:8" - }, - "nodeType": "YulExpressionStatement", - "src": "6164:63:8" - } - ] - }, - { - "nodeType": "YulBlock", - "src": "6247:168:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6286:43:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6316:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6323:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6312:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6312:16:8" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "6306:5:8" - }, - "nodeType": "YulFunctionCall", - "src": "6306:23:8" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "6290:12:8", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "6376:12:8" - }, - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6394:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6399:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6390:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6390:14:8" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address", - "nodeType": "YulIdentifier", - "src": "6342:33:8" - }, - "nodeType": "YulFunctionCall", - "src": "6342:63:8" - }, - "nodeType": "YulExpressionStatement", - "src": "6342:63:8" - } - ] - }, - { - "nodeType": "YulBlock", - "src": "6425:238:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6463:43:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6493:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6500:4:8", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6489:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6489:16:8" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "6483:5:8" - }, - "nodeType": "YulFunctionCall", - "src": "6483:23:8" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "6467:12:8", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6531:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6536:4:8", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6527:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6527:14:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6547:4:8" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6553:3:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "6543:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6543:14:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6520:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "6520:38:8" - }, - "nodeType": "YulExpressionStatement", - "src": "6520:38:8" - }, - { - "nodeType": "YulAssignment", - "src": "6571:81:8", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "6633:12:8" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6647:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "6579:53:8" - }, - "nodeType": "YulFunctionCall", - "src": "6579:73:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6571:4:8" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "6673:242:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6715:43:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6745:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6752:4:8", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6741:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6741:16:8" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "6735:5:8" - }, - "nodeType": "YulFunctionCall", - "src": "6735:23:8" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "6719:12:8", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6783:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6788:4:8", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6779:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6779:14:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6799:4:8" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6805:3:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "6795:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6795:14:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6772:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "6772:38:8" - }, - "nodeType": "YulExpressionStatement", - "src": "6772:38:8" - }, - { - "nodeType": "YulAssignment", - "src": "6823:81:8", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "6885:12:8" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6899:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "6831:53:8" - }, - "nodeType": "YulFunctionCall", - "src": "6831:73:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6823:4:8" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "6925:241:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6966:43:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6996:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7003:4:8", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6992:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "6992:16:8" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "6986:5:8" - }, - "nodeType": "YulFunctionCall", - "src": "6986:23:8" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "6970:12:8", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7034:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7039:4:8", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7030:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "7030:14:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7050:4:8" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7056:3:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7046:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "7046:14:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7023:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "7023:38:8" - }, - "nodeType": "YulExpressionStatement", - "src": "7023:38:8" - }, - { - "nodeType": "YulAssignment", - "src": "7074:81:8", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "7136:12:8" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7150:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "7082:53:8" - }, - "nodeType": "YulFunctionCall", - "src": "7082:73:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7074:4:8" - } - ] - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "7176:11:8", - "value": { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7183:4:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "7176:3:8" - } - ] - } - ] - }, - "name": "abi_encode_t_struct$_App_$815_memory_ptr_to_t_struct$_App_$815_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "6005:5:8", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "6012:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "6021:3:8", - "type": "" - } - ], - "src": "5912:1281:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7337:215:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "7347:26:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7359:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7370:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7355:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "7355:18:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7347:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7394:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7405:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7390:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "7390:17:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7413:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7419:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7409:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "7409:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7383:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "7383:47:8" - }, - "nodeType": "YulExpressionStatement", - "src": "7383:47:8" - }, - { - "nodeType": "YulAssignment", - "src": "7439:106:8", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "7531:6:8" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7540:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_struct$_App_$815_memory_ptr_to_t_struct$_App_$815_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "7447:83:8" - }, - "nodeType": "YulFunctionCall", - "src": "7447:98:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7439:4:8" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_struct$_App_$815_memory_ptr__to_t_struct$_App_$815_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7309:9:8", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "7321:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "7332:4:8", - "type": "" - } - ], - "src": "7199:353:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7647:28:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7664:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7667:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7657:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "7657:12:8" - }, - "nodeType": "YulExpressionStatement", - "src": "7657:12:8" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nodeType": "YulFunctionDefinition", - "src": "7558:117:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7770:28:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7787:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7790:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7780:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "7780:12:8" - }, - "nodeType": "YulExpressionStatement", - "src": "7780:12:8" - } - ] - }, - "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", - "nodeType": "YulFunctionDefinition", - "src": "7681:117:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7893:28:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7910:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7913:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7903:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "7903:12:8" - }, - "nodeType": "YulExpressionStatement", - "src": "7903:12:8" - } - ] - }, - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nodeType": "YulFunctionDefinition", - "src": "7804:117:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8034:478:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "8083:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nodeType": "YulIdentifier", - "src": "8085:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "8085:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "8085:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "8062:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8070:4:8", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8058:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "8058:17:8" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "8077:3:8" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "8054:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "8054:27:8" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "8047:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "8047:35:8" - }, - "nodeType": "YulIf", - "src": "8044:122:8" - }, - { - "nodeType": "YulAssignment", - "src": "8175:30:8", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "8198:6:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "8185:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "8185:20:8" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "8175:6:8" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8248:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", - "nodeType": "YulIdentifier", - "src": "8250:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "8250:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "8250:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "8220:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8228:18:8", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "8217:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "8217:30:8" - }, - "nodeType": "YulIf", - "src": "8214:117:8" - }, - { - "nodeType": "YulAssignment", - "src": "8340:29:8", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "8356:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8364:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8352:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "8352:17:8" - }, - "variableNames": [ - { - "name": "arrayPos", - "nodeType": "YulIdentifier", - "src": "8340:8:8" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8423:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nodeType": "YulIdentifier", - "src": "8425:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "8425:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "8425:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "arrayPos", - "nodeType": "YulIdentifier", - "src": "8388:8:8" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "8402:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8410:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nodeType": "YulIdentifier", - "src": "8398:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "8398:17:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8384:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "8384:32:8" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "8418:3:8" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "8381:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "8381:41:8" - }, - "nodeType": "YulIf", - "src": "8378:128:8" - } - ] - }, - "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "8001:6:8", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "8009:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "arrayPos", - "nodeType": "YulTypedName", - "src": "8017:8:8", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "8027:6:8", - "type": "" - } - ], - "src": "7944:568:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8636:586:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "8682:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "8684:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "8684:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "8684:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "8657:7:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8666:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "8653:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "8653:23:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8678:2:8", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "8649:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "8649:32:8" - }, - "nodeType": "YulIf", - "src": "8646:119:8" - }, - { - "nodeType": "YulBlock", - "src": "8775:117:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "8790:15:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8804:1:8", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "8794:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "8819:63:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8854:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "8865:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8850:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "8850:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "8874:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "8829:20:8" - }, - "nodeType": "YulFunctionCall", - "src": "8829:53:8" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "8819:6:8" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "8902:313:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "8917:46:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8948:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8959:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8944:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "8944:18:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "8931:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "8931:32:8" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "8921:6:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9010:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "9012:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "9012:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "9012:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "8982:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8990:18:8", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "8979:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "8979:30:8" - }, - "nodeType": "YulIf", - "src": "8976:117:8" - }, - { - "nodeType": "YulAssignment", - "src": "9107:98:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "9177:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "9188:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9173:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "9173:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "9197:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", - "nodeType": "YulIdentifier", - "src": "9125:47:8" - }, - "nodeType": "YulFunctionCall", - "src": "9125:80:8" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "9107:6:8" - }, - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "9115:6:8" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256t_array$_t_address_$dyn_calldata_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8590:9:8", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "8601:7:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "8613:6:8", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "8621:6:8", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "8629:6:8", - "type": "" - } - ], - "src": "8518:704:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9317:28:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9334:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9337:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "9327:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "9327:12:8" - }, - "nodeType": "YulExpressionStatement", - "src": "9327:12:8" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nodeType": "YulFunctionDefinition", - "src": "9228:117:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9379:152:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9396:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9399:77:8", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9389:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "9389:88:8" - }, - "nodeType": "YulExpressionStatement", - "src": "9389:88:8" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9493:1:8", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9496:4:8", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9486:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "9486:15:8" - }, - "nodeType": "YulExpressionStatement", - "src": "9486:15:8" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9517:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9520:4:8", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "9510:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "9510:15:8" - }, - "nodeType": "YulExpressionStatement", - "src": "9510:15:8" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "9351:180:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9580:238:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "9590:58:8", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "9612:6:8" - }, - { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "9642:4:8" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "9620:21:8" - }, - "nodeType": "YulFunctionCall", - "src": "9620:27:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9608:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "9608:40:8" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "9594:10:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9759:22:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "9761:16:8" - }, - "nodeType": "YulFunctionCall", - "src": "9761:18:8" - }, - "nodeType": "YulExpressionStatement", - "src": "9761:18:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "9702:10:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9714:18:8", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "9699:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "9699:34:8" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "9738:10:8" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "9750:6:8" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "9735:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "9735:22:8" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "9696:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "9696:62:8" - }, - "nodeType": "YulIf", - "src": "9693:88:8" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9797:2:8", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "9801:10:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9790:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "9790:22:8" - }, - "nodeType": "YulExpressionStatement", - "src": "9790:22:8" - } - ] - }, - "name": "finalize_allocation", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "9566:6:8", - "type": "" - }, - { - "name": "size", - "nodeType": "YulTypedName", - "src": "9574:4:8", - "type": "" - } - ], - "src": "9537:281:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9865:88:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9875:30:8", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nodeType": "YulIdentifier", - "src": "9885:18:8" - }, - "nodeType": "YulFunctionCall", - "src": "9885:20:8" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "9875:6:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "9934:6:8" - }, - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "9942:4:8" - } - ], - "functionName": { - "name": "finalize_allocation", - "nodeType": "YulIdentifier", - "src": "9914:19:8" - }, - "nodeType": "YulFunctionCall", - "src": "9914:33:8" - }, - "nodeType": "YulExpressionStatement", - "src": "9914:33:8" - } - ] - }, - "name": "allocate_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "9849:4:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "9858:6:8", - "type": "" - } - ], - "src": "9824:129:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10026:241:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "10131:22:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "10133:16:8" - }, - "nodeType": "YulFunctionCall", - "src": "10133:18:8" - }, - "nodeType": "YulExpressionStatement", - "src": "10133:18:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10103:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10111:18:8", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "10100:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "10100:30:8" - }, - "nodeType": "YulIf", - "src": "10097:56:8" - }, - { - "nodeType": "YulAssignment", - "src": "10163:37:8", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10193:6:8" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "10171:21:8" - }, - "nodeType": "YulFunctionCall", - "src": "10171:29:8" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "10163:4:8" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "10237:23:8", - "value": { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "10249:4:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10255:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10245:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "10245:15:8" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "10237:4:8" - } - ] - } - ] - }, - "name": "array_allocation_size_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "10010:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "10021:4:8", - "type": "" - } - ], - "src": "9959:308:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10324:103:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "10347:3:8" - }, - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10352:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10357:6:8" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "10334:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "10334:30:8" - }, - "nodeType": "YulExpressionStatement", - "src": "10334:30:8" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "10405:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10410:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10401:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "10401:16:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10419:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10394:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "10394:27:8" - }, - "nodeType": "YulExpressionStatement", - "src": "10394:27:8" - } - ] - }, - "name": "copy_calldata_to_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "10306:3:8", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "10311:3:8", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "10316:6:8", - "type": "" - } - ], - "src": "10273:154:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10517:328:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10527:75:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10594:6:8" - } - ], - "functionName": { - "name": "array_allocation_size_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "10552:41:8" - }, - "nodeType": "YulFunctionCall", - "src": "10552:49:8" - } - ], - "functionName": { - "name": "allocate_memory", - "nodeType": "YulIdentifier", - "src": "10536:15:8" - }, - "nodeType": "YulFunctionCall", - "src": "10536:66:8" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "10527:5:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "10618:5:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10625:6:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10611:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "10611:21:8" - }, - "nodeType": "YulExpressionStatement", - "src": "10611:21:8" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10641:27:8", - "value": { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "10656:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10663:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10652:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "10652:16:8" - }, - "variables": [ - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "10645:3:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10706:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nodeType": "YulIdentifier", - "src": "10708:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "10708:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "10708:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10687:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10692:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10683:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "10683:16:8" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "10701:3:8" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "10680:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "10680:25:8" - }, - "nodeType": "YulIf", - "src": "10677:112:8" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10822:3:8" - }, - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "10827:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10832:6:8" - } - ], - "functionName": { - "name": "copy_calldata_to_memory", - "nodeType": "YulIdentifier", - "src": "10798:23:8" - }, - "nodeType": "YulFunctionCall", - "src": "10798:41:8" - }, - "nodeType": "YulExpressionStatement", - "src": "10798:41:8" - } - ] - }, - "name": "abi_decode_available_length_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "10490:3:8", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "10495:6:8", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "10503:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "10511:5:8", - "type": "" - } - ], - "src": "10433:412:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10927:278:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "10976:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nodeType": "YulIdentifier", - "src": "10978:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "10978:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "10978:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "10955:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10963:4:8", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10951:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "10951:17:8" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "10970:3:8" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "10947:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "10947:27:8" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "10940:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "10940:35:8" - }, - "nodeType": "YulIf", - "src": "10937:122:8" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "11068:34:8", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "11095:6:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "11082:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "11082:20:8" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "11072:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "11111:88:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "11172:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11180:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11168:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "11168:17:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "11187:6:8" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "11195:3:8" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "11120:47:8" - }, - "nodeType": "YulFunctionCall", - "src": "11120:79:8" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "11111:5:8" - } - ] - } - ] - }, - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "10905:6:8", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "10913:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "10921:5:8", - "type": "" - } - ], - "src": "10865:340:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11358:1158:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "11405:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "11407:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "11407:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "11407:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "11379:7:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11388:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "11375:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "11375:23:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11400:3:8", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "11371:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "11371:33:8" - }, - "nodeType": "YulIf", - "src": "11368:120:8" - }, - { - "nodeType": "YulBlock", - "src": "11498:117:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "11513:15:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11527:1:8", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "11517:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "11542:63:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11577:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "11588:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11573:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "11573:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "11597:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "11552:20:8" - }, - "nodeType": "YulFunctionCall", - "src": "11552:53:8" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "11542:6:8" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "11625:288:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "11640:46:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11671:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11682:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11667:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "11667:18:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "11654:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "11654:32:8" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "11644:6:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11733:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "11735:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "11735:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "11735:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "11705:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11713:18:8", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "11702:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "11702:30:8" - }, - "nodeType": "YulIf", - "src": "11699:117:8" - }, - { - "nodeType": "YulAssignment", - "src": "11830:73:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11875:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "11886:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11871:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "11871:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "11895:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "11840:30:8" - }, - "nodeType": "YulFunctionCall", - "src": "11840:63:8" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "11830:6:8" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "11923:288:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "11938:46:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11969:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11980:2:8", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11965:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "11965:18:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "11952:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "11952:32:8" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "11942:6:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12031:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "12033:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "12033:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "12033:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "12003:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12011:18:8", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "12000:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "12000:30:8" - }, - "nodeType": "YulIf", - "src": "11997:117:8" - }, - { - "nodeType": "YulAssignment", - "src": "12128:73:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12173:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "12184:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12169:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "12169:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "12193:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "12138:30:8" - }, - "nodeType": "YulFunctionCall", - "src": "12138:63:8" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "12128:6:8" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "12221:288:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "12236:46:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12267:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12278:2:8", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12263:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "12263:18:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "12250:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "12250:32:8" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "12240:6:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12329:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "12331:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "12331:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "12331:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "12301:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12309:18:8", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "12298:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "12298:30:8" - }, - "nodeType": "YulIf", - "src": "12295:117:8" - }, - { - "nodeType": "YulAssignment", - "src": "12426:73:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12471:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "12482:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12467:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "12467:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "12491:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "12436:30:8" - }, - "nodeType": "YulFunctionCall", - "src": "12436:63:8" - }, - "variableNames": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "12426:6:8" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11304:9:8", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "11315:7:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "11327:6:8", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "11335:6:8", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "11343:6:8", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "11351:6:8", - "type": "" - } - ], - "src": "11211:1305:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12605:391:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "12651:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "12653:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "12653:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "12653:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "12626:7:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12635:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "12622:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "12622:23:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12647:2:8", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "12618:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "12618:32:8" - }, - "nodeType": "YulIf", - "src": "12615:119:8" - }, - { - "nodeType": "YulBlock", - "src": "12744:117:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "12759:15:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12773:1:8", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "12763:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "12788:63:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12823:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "12834:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12819:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "12819:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "12843:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "12798:20:8" - }, - "nodeType": "YulFunctionCall", - "src": "12798:53:8" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12788:6:8" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "12871:118:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "12886:16:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12900:2:8", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "12890:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "12916:63:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12951:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "12962:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12947:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "12947:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "12971:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "12926:20:8" - }, - "nodeType": "YulFunctionCall", - "src": "12926:53:8" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "12916:6:8" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "12567:9:8", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "12578:7:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "12590:6:8", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "12598:6:8", - "type": "" - } - ], - "src": "12522:474:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13132:1029:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "13178:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "13180:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "13180:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "13180:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "13153:7:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13162:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "13149:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "13149:23:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13174:2:8", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "13145:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "13145:32:8" - }, - "nodeType": "YulIf", - "src": "13142:119:8" - }, - { - "nodeType": "YulBlock", - "src": "13271:287:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "13286:45:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13317:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13328:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13313:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "13313:17:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "13300:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "13300:31:8" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "13290:6:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13378:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "13380:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "13380:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "13380:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "13350:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13358:18:8", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "13347:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "13347:30:8" - }, - "nodeType": "YulIf", - "src": "13344:117:8" - }, - { - "nodeType": "YulAssignment", - "src": "13475:73:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13520:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "13531:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13516:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "13516:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "13540:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "13485:30:8" - }, - "nodeType": "YulFunctionCall", - "src": "13485:63:8" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "13475:6:8" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "13568:288:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "13583:46:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13614:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13625:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13610:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "13610:18:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "13597:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "13597:32:8" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "13587:6:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13676:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "13678:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "13678:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "13678:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "13648:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13656:18:8", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "13645:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "13645:30:8" - }, - "nodeType": "YulIf", - "src": "13642:117:8" - }, - { - "nodeType": "YulAssignment", - "src": "13773:73:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13818:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "13829:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13814:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "13814:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "13838:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "13783:30:8" - }, - "nodeType": "YulFunctionCall", - "src": "13783:63:8" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "13773:6:8" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "13866:288:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "13881:46:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13912:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13923:2:8", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13908:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "13908:18:8" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "13895:12:8" - }, - "nodeType": "YulFunctionCall", - "src": "13895:32:8" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "13885:6:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13974:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "13976:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "13976:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "13976:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "13946:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13954:18:8", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "13943:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "13943:30:8" - }, - "nodeType": "YulIf", - "src": "13940:117:8" - }, - { - "nodeType": "YulAssignment", - "src": "14071:73:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14116:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "14127:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14112:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "14112:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "14136:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "14081:30:8" - }, - "nodeType": "YulFunctionCall", - "src": "14081:63:8" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "14071:6:8" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "13086:9:8", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "13097:7:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "13109:6:8", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "13117:6:8", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "13125:6:8", - "type": "" - } - ], - "src": "13002:1159:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "14263:73:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "14280:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "14285:6:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "14273:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "14273:19:8" - }, - "nodeType": "YulExpressionStatement", - "src": "14273:19:8" - }, - { - "nodeType": "YulAssignment", - "src": "14301:29:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "14320:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14325:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14316:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "14316:14:8" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "14301:11:8" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "14235:3:8", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "14240:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "14251:11:8", - "type": "" - } - ], - "src": "14167:169:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "14448:60:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "14470:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14478:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14466:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "14466:14:8" - }, - { - "hexValue": "416c7265616479207665726966696564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "14482:18:8", - "type": "", - "value": "Already verified" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "14459:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "14459:42:8" - }, - "nodeType": "YulExpressionStatement", - "src": "14459:42:8" - } - ] - }, - "name": "store_literal_in_memory_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "14440:6:8", - "type": "" - } - ], - "src": "14342:166:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "14660:220:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "14670:74:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "14736:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14741:2:8", - "type": "", - "value": "16" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "14677:58:8" - }, - "nodeType": "YulFunctionCall", - "src": "14677:67:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "14670:3:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "14842:3:8" - } - ], - "functionName": { - "name": "store_literal_in_memory_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5", - "nodeType": "YulIdentifier", - "src": "14753:88:8" - }, - "nodeType": "YulFunctionCall", - "src": "14753:93:8" - }, - "nodeType": "YulExpressionStatement", - "src": "14753:93:8" - }, - { - "nodeType": "YulAssignment", - "src": "14855:19:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "14866:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14871:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14862:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "14862:12:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "14855:3:8" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "14648:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "14656:3:8", - "type": "" - } - ], - "src": "14514:366:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "15057:248:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "15067:26:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15079:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15090:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15075:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "15075:18:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15067:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15114:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15125:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15110:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "15110:17:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15133:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15139:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "15129:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "15129:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "15103:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "15103:47:8" - }, - "nodeType": "YulExpressionStatement", - "src": "15103:47:8" - }, - { - "nodeType": "YulAssignment", - "src": "15159:139:8", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15293:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "15167:124:8" - }, - "nodeType": "YulFunctionCall", - "src": "15167:131:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15159:4:8" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "15037:9:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "15052:4:8", - "type": "" - } - ], - "src": "14886:419:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "15417:128:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "15439:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15447:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15435:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "15435:14:8" - }, - { - "hexValue": "416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365", - "kind": "string", - "nodeType": "YulLiteral", - "src": "15451:34:8", - "type": "", - "value": "AccessControl: can only renounce" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "15428:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "15428:58:8" - }, - "nodeType": "YulExpressionStatement", - "src": "15428:58:8" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "15507:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15515:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15503:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "15503:15:8" - }, - { - "hexValue": "20726f6c657320666f722073656c66", - "kind": "string", - "nodeType": "YulLiteral", - "src": "15520:17:8", - "type": "", - "value": " roles for self" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "15496:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "15496:42:8" - }, - "nodeType": "YulExpressionStatement", - "src": "15496:42:8" - } - ] - }, - "name": "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "15409:6:8", - "type": "" - } - ], - "src": "15311:234:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "15697:220:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "15707:74:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "15773:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15778:2:8", - "type": "", - "value": "47" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "15714:58:8" - }, - "nodeType": "YulFunctionCall", - "src": "15714:67:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "15707:3:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "15879:3:8" - } - ], - "functionName": { - "name": "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", - "nodeType": "YulIdentifier", - "src": "15790:88:8" - }, - "nodeType": "YulFunctionCall", - "src": "15790:93:8" - }, - "nodeType": "YulExpressionStatement", - "src": "15790:93:8" - }, - { - "nodeType": "YulAssignment", - "src": "15892:19:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "15903:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15908:2:8", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15899:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "15899:12:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "15892:3:8" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "15685:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "15693:3:8", - "type": "" - } - ], - "src": "15551:366:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "16094:248:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "16104:26:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16116:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16127:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16112:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "16112:18:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "16104:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16151:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16162:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16147:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "16147:17:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "16170:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16176:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "16166:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "16166:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "16140:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "16140:47:8" - }, - "nodeType": "YulExpressionStatement", - "src": "16140:47:8" - }, - { - "nodeType": "YulAssignment", - "src": "16196:139:8", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "16330:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "16204:124:8" - }, - "nodeType": "YulFunctionCall", - "src": "16204:131:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "16196:4:8" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "16074:9:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "16089:4:8", - "type": "" - } - ], - "src": "15923:419:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "16454:61:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "16476:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16484:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16472:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "16472:14:8" - }, - { - "hexValue": "4e6f74206f776e6572206f662064617070", - "kind": "string", - "nodeType": "YulLiteral", - "src": "16488:19:8", - "type": "", - "value": "Not owner of dapp" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "16465:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "16465:43:8" - }, - "nodeType": "YulExpressionStatement", - "src": "16465:43:8" - } - ] - }, - "name": "store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "16446:6:8", - "type": "" - } - ], - "src": "16348:167:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "16667:220:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "16677:74:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "16743:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16748:2:8", - "type": "", - "value": "17" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "16684:58:8" - }, - "nodeType": "YulFunctionCall", - "src": "16684:67:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "16677:3:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "16849:3:8" - } - ], - "functionName": { - "name": "store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "nodeType": "YulIdentifier", - "src": "16760:88:8" - }, - "nodeType": "YulFunctionCall", - "src": "16760:93:8" - }, - "nodeType": "YulExpressionStatement", - "src": "16760:93:8" - }, - { - "nodeType": "YulAssignment", - "src": "16862:19:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "16873:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16878:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16869:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "16869:12:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "16862:3:8" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "16655:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "16663:3:8", - "type": "" - } - ], - "src": "16521:366:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "17064:248:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "17074:26:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17086:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17097:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17082:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "17082:18:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "17074:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17121:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17132:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17117:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "17117:17:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "17140:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17146:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "17136:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "17136:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "17110:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "17110:47:8" - }, - "nodeType": "YulExpressionStatement", - "src": "17110:47:8" - }, - { - "nodeType": "YulAssignment", - "src": "17166:139:8", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "17300:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "17174:124:8" - }, - "nodeType": "YulFunctionCall", - "src": "17174:131:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "17166:4:8" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "17044:9:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "17059:4:8", - "type": "" - } - ], - "src": "16893:419:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "17346:152:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17363:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17366:77:8", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "17356:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "17356:88:8" - }, - "nodeType": "YulExpressionStatement", - "src": "17356:88:8" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17460:1:8", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17463:4:8", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "17453:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "17453:15:8" - }, - "nodeType": "YulExpressionStatement", - "src": "17453:15:8" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17484:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17487:4:8", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "17477:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "17477:15:8" - }, - "nodeType": "YulExpressionStatement", - "src": "17477:15:8" - } - ] - }, - "name": "panic_error_0x22", - "nodeType": "YulFunctionDefinition", - "src": "17318:180:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "17555:269:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "17565:22:8", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "17579:4:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17585:1:8", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "div", - "nodeType": "YulIdentifier", - "src": "17575:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "17575:12:8" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "17565:6:8" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "17596:38:8", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "17626:4:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17632:1:8", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "17622:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "17622:12:8" - }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "17600:18:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "17673:51:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "17687:27:8", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "17701:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17709:4:8", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "17697:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "17697:17:8" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "17687:6:8" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "17653:18:8" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "17646:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "17646:26:8" - }, - "nodeType": "YulIf", - "src": "17643:81:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "17776:42:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x22", - "nodeType": "YulIdentifier", - "src": "17790:16:8" - }, - "nodeType": "YulFunctionCall", - "src": "17790:18:8" - }, - "nodeType": "YulExpressionStatement", - "src": "17790:18:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "17740:18:8" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "17763:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17771:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "17760:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "17760:14:8" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "17737:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "17737:38:8" - }, - "nodeType": "YulIf", - "src": "17734:84:8" - } - ] - }, - "name": "extract_byte_array_length", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "17539:4:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "17548:6:8", - "type": "" - } - ], - "src": "17504:320:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "17936:127:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "17958:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17966:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17954:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "17954:14:8" - }, - { - "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561", - "kind": "string", - "nodeType": "YulLiteral", - "src": "17970:34:8", - "type": "", - "value": "Initializable: contract is alrea" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "17947:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "17947:58:8" - }, - "nodeType": "YulExpressionStatement", - "src": "17947:58:8" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "18026:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18034:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18022:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "18022:15:8" - }, - { - "hexValue": "647920696e697469616c697a6564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "18039:16:8", - "type": "", - "value": "dy initialized" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "18015:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "18015:41:8" - }, - "nodeType": "YulExpressionStatement", - "src": "18015:41:8" - } - ] - }, - "name": "store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "17928:6:8", - "type": "" - } - ], - "src": "17830:233:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "18215:220:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "18225:74:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "18291:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18296:2:8", - "type": "", - "value": "46" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "18232:58:8" - }, - "nodeType": "YulFunctionCall", - "src": "18232:67:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "18225:3:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "18397:3:8" - } - ], - "functionName": { - "name": "store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", - "nodeType": "YulIdentifier", - "src": "18308:88:8" - }, - "nodeType": "YulFunctionCall", - "src": "18308:93:8" - }, - "nodeType": "YulExpressionStatement", - "src": "18308:93:8" - }, - { - "nodeType": "YulAssignment", - "src": "18410:19:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "18421:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18426:2:8", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18417:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "18417:12:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "18410:3:8" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "18203:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "18211:3:8", - "type": "" - } - ], - "src": "18069:366:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "18612:248:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "18622:26:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "18634:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18645:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18630:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "18630:18:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "18622:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "18669:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18680:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18665:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "18665:17:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "18688:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "18694:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "18684:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "18684:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "18658:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "18658:47:8" - }, - "nodeType": "YulExpressionStatement", - "src": "18658:47:8" - }, - { - "nodeType": "YulAssignment", - "src": "18714:139:8", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "18848:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "18722:124:8" - }, - "nodeType": "YulFunctionCall", - "src": "18722:131:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "18714:4:8" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "18592:9:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "18607:4:8", - "type": "" - } - ], - "src": "18441:419:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "18894:152:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18911:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18914:77:8", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "18904:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "18904:88:8" - }, - "nodeType": "YulExpressionStatement", - "src": "18904:88:8" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19008:1:8", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19011:4:8", - "type": "", - "value": "0x32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "19001:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "19001:15:8" - }, - "nodeType": "YulExpressionStatement", - "src": "19001:15:8" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19032:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19035:4:8", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "19025:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "19025:15:8" - }, - "nodeType": "YulExpressionStatement", - "src": "19025:15:8" - } - ] - }, - "name": "panic_error_0x32", - "nodeType": "YulFunctionDefinition", - "src": "18866:180:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19118:263:8", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "19164:83:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "19166:77:8" - }, - "nodeType": "YulFunctionCall", - "src": "19166:79:8" - }, - "nodeType": "YulExpressionStatement", - "src": "19166:79:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "19139:7:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "19148:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "19135:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "19135:23:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19160:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "19131:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "19131:32:8" - }, - "nodeType": "YulIf", - "src": "19128:119:8" - }, - { - "nodeType": "YulBlock", - "src": "19257:117:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "19272:15:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19286:1:8", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "19276:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "19301:63:8", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "19336:9:8" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "19347:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "19332:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "19332:22:8" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "19356:7:8" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "19311:20:8" - }, - "nodeType": "YulFunctionCall", - "src": "19311:53:8" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "19301:6:8" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "19088:9:8", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "19099:7:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "19111:6:8", - "type": "" - } - ], - "src": "19052:329:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19415:152:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19432:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19435:77:8", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "19425:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "19425:88:8" - }, - "nodeType": "YulExpressionStatement", - "src": "19425:88:8" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19529:1:8", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19532:4:8", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "19522:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "19522:15:8" - }, - "nodeType": "YulExpressionStatement", - "src": "19522:15:8" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19553:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19556:4:8", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "19546:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "19546:15:8" - }, - "nodeType": "YulExpressionStatement", - "src": "19546:15:8" - } - ] - }, - "name": "panic_error_0x11", - "nodeType": "YulFunctionDefinition", - "src": "19387:180:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19616:190:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "19626:33:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "19653:5:8" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "19635:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "19635:24:8" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "19626:5:8" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19749:22:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "19751:16:8" - }, - "nodeType": "YulFunctionCall", - "src": "19751:18:8" - }, - "nodeType": "YulExpressionStatement", - "src": "19751:18:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "19674:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19681:66:8", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "19671:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "19671:77:8" - }, - "nodeType": "YulIf", - "src": "19668:103:8" - }, - { - "nodeType": "YulAssignment", - "src": "19780:20:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "19791:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19798:1:8", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "19787:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "19787:13:8" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "19780:3:8" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "19602:5:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "19612:3:8", - "type": "" - } - ], - "src": "19573:233:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19877:53:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "19894:3:8" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "19917:5:8" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "19899:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "19899:24:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "19887:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "19887:37:8" - }, - "nodeType": "YulExpressionStatement", - "src": "19887:37:8" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "19865:5:8", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "19872:3:8", - "type": "" - } - ], - "src": "19812:118:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20028:272:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "20038:53:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "20085:5:8" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "20052:32:8" - }, - "nodeType": "YulFunctionCall", - "src": "20052:39:8" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "20042:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "20100:78:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "20166:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20171:6:8" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "20107:58:8" - }, - "nodeType": "YulFunctionCall", - "src": "20107:71:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "20100:3:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "20213:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20220:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20209:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "20209:16:8" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "20227:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20232:6:8" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "20187:21:8" - }, - "nodeType": "YulFunctionCall", - "src": "20187:52:8" - }, - "nodeType": "YulExpressionStatement", - "src": "20187:52:8" - }, - { - "nodeType": "YulAssignment", - "src": "20248:46:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "20259:3:8" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20286:6:8" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "20264:21:8" - }, - "nodeType": "YulFunctionCall", - "src": "20264:29:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20255:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "20255:39:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "20248:3:8" - } - ] - } - ] - }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "20009:5:8", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "20016:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "20024:3:8", - "type": "" - } - ], - "src": "19936:364:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20576:667:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "20586:27:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "20598:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20609:3:8", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20594:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "20594:19:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "20586:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "20667:6:8" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "20680:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20691:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20676:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "20676:17:8" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "20623:43:8" - }, - "nodeType": "YulFunctionCall", - "src": "20623:71:8" - }, - "nodeType": "YulExpressionStatement", - "src": "20623:71:8" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "20748:6:8" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "20761:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20772:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20757:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "20757:18:8" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "20704:43:8" - }, - "nodeType": "YulFunctionCall", - "src": "20704:72:8" - }, - "nodeType": "YulExpressionStatement", - "src": "20704:72:8" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "20797:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20808:2:8", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20793:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "20793:18:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "20817:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "20823:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "20813:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "20813:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "20786:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "20786:48:8" - }, - "nodeType": "YulExpressionStatement", - "src": "20786:48:8" - }, - { - "nodeType": "YulAssignment", - "src": "20843:86:8", - "value": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "20915:6:8" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "20924:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "20851:63:8" - }, - "nodeType": "YulFunctionCall", - "src": "20851:78:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "20843:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "20950:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20961:2:8", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20946:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "20946:18:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "20970:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "20976:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "20966:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "20966:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "20939:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "20939:48:8" - }, - "nodeType": "YulExpressionStatement", - "src": "20939:48:8" - }, - { - "nodeType": "YulAssignment", - "src": "20996:86:8", - "value": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "21068:6:8" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "21077:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "21004:63:8" - }, - "nodeType": "YulFunctionCall", - "src": "21004:78:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "20996:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "21103:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21114:3:8", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "21099:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "21099:19:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "21124:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "21130:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "21120:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "21120:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "21092:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "21092:49:8" - }, - "nodeType": "YulExpressionStatement", - "src": "21092:49:8" - }, - { - "nodeType": "YulAssignment", - "src": "21150:86:8", - "value": { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "21222:6:8" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "21231:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "21158:63:8" - }, - "nodeType": "YulFunctionCall", - "src": "21158:78:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "21150:4:8" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "20516:9:8", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "20528:6:8", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "20536:6:8", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "20544:6:8", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "20552:6:8", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "20560:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "20571:4:8", - "type": "" - } - ], - "src": "20306:937:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21303:87:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "21313:11:8", - "value": { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "21321:3:8" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "21313:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21341:1:8", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "21344:3:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "21334:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "21334:14:8" - }, - "nodeType": "YulExpressionStatement", - "src": "21334:14:8" - }, - { - "nodeType": "YulAssignment", - "src": "21357:26:8", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21375:1:8", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21378:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "21365:9:8" - }, - "nodeType": "YulFunctionCall", - "src": "21365:18:8" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "21357:4:8" - } - ] - } - ] - }, - "name": "array_dataslot_t_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "21290:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "21298:4:8", - "type": "" - } - ], - "src": "21249:141:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21509:713:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "21519:29:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "21542:5:8" - } - ], - "functionName": { - "name": "sload", - "nodeType": "YulIdentifier", - "src": "21536:5:8" - }, - "nodeType": "YulFunctionCall", - "src": "21536:12:8" - }, - "variables": [ - { - "name": "slotValue", - "nodeType": "YulTypedName", - "src": "21523:9:8", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "21557:50:8", - "value": { - "arguments": [ - { - "name": "slotValue", - "nodeType": "YulIdentifier", - "src": "21597:9:8" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nodeType": "YulIdentifier", - "src": "21571:25:8" - }, - "nodeType": "YulFunctionCall", - "src": "21571:36:8" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "21561:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "21616:78:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "21682:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "21687:6:8" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "21623:58:8" - }, - "nodeType": "YulFunctionCall", - "src": "21623:71:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "21616:3:8" - } - ] - }, - { - "cases": [ - { - "body": { - "nodeType": "YulBlock", - "src": "21743:128:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "21796:3:8" - }, - { - "arguments": [ - { - "name": "slotValue", - "nodeType": "YulIdentifier", - "src": "21805:9:8" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21820:4:8", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "21816:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "21816:9:8" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "21801:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "21801:25:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "21789:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "21789:38:8" - }, - "nodeType": "YulExpressionStatement", - "src": "21789:38:8" - }, - { - "nodeType": "YulAssignment", - "src": "21840:21:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "21851:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21856:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "21847:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "21847:14:8" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "21840:3:8" - } - ] - } - ] - }, - "nodeType": "YulCase", - "src": "21736:135:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21741:1:8", - "type": "", - "value": "0" - } - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21887:329:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "21932:53:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "21979:5:8" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nodeType": "YulIdentifier", - "src": "21947:31:8" - }, - "nodeType": "YulFunctionCall", - "src": "21947:38:8" - }, - "variables": [ - { - "name": "dataPos", - "nodeType": "YulTypedName", - "src": "21936:7:8", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "21998:10:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22007:1:8", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "22002:1:8", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "22065:110:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "22094:3:8" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "22099:1:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22090:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "22090:11:8" - }, - { - "arguments": [ - { - "name": "dataPos", - "nodeType": "YulIdentifier", - "src": "22109:7:8" - } - ], - "functionName": { - "name": "sload", - "nodeType": "YulIdentifier", - "src": "22103:5:8" - }, - "nodeType": "YulFunctionCall", - "src": "22103:14:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "22083:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "22083:35:8" - }, - "nodeType": "YulExpressionStatement", - "src": "22083:35:8" - }, - { - "nodeType": "YulAssignment", - "src": "22135:26:8", - "value": { - "arguments": [ - { - "name": "dataPos", - "nodeType": "YulIdentifier", - "src": "22150:7:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22159:1:8", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22146:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "22146:15:8" - }, - "variableNames": [ - { - "name": "dataPos", - "nodeType": "YulIdentifier", - "src": "22135:7:8" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "22032:1:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "22035:6:8" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "22029:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "22029:13:8" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "22043:21:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "22045:17:8", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "22054:1:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22057:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22050:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "22050:12:8" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "22045:1:8" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "22025:3:8", - "statements": [] - }, - "src": "22021:154:8" - }, - { - "nodeType": "YulAssignment", - "src": "22188:18:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "22199:3:8" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "22204:1:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22195:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "22195:11:8" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "22188:3:8" - } - ] - } - ] - }, - "nodeType": "YulCase", - "src": "21880:336:8", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21885:1:8", - "type": "", - "value": "1" - } - } - ], - "expression": { - "arguments": [ - { - "name": "slotValue", - "nodeType": "YulIdentifier", - "src": "21714:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21725:1:8", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "21710:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "21710:17:8" - }, - "nodeType": "YulSwitch", - "src": "21703:513:8" - } - ] - }, - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "21490:5:8", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "21497:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "21505:3:8", - "type": "" - } - ], - "src": "21420:802:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "22489:658:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "22499:27:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "22511:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22522:3:8", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22507:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "22507:19:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "22499:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "22580:6:8" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "22593:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22604:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22589:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "22589:17:8" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "22536:43:8" - }, - "nodeType": "YulFunctionCall", - "src": "22536:71:8" - }, - "nodeType": "YulExpressionStatement", - "src": "22536:71:8" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "22661:6:8" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "22674:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22685:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22670:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "22670:18:8" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "22617:43:8" - }, - "nodeType": "YulFunctionCall", - "src": "22617:72:8" - }, - "nodeType": "YulExpressionStatement", - "src": "22617:72:8" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "22710:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22721:2:8", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22706:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "22706:18:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "22730:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "22736:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "22726:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "22726:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "22699:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "22699:48:8" - }, - "nodeType": "YulExpressionStatement", - "src": "22699:48:8" - }, - { - "nodeType": "YulAssignment", - "src": "22756:83:8", - "value": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "22825:6:8" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "22834:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "22764:60:8" - }, - "nodeType": "YulFunctionCall", - "src": "22764:75:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "22756:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "22860:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22871:2:8", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22856:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "22856:18:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "22880:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "22886:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "22876:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "22876:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "22849:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "22849:48:8" - }, - "nodeType": "YulExpressionStatement", - "src": "22849:48:8" - }, - { - "nodeType": "YulAssignment", - "src": "22906:83:8", - "value": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "22975:6:8" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "22984:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "22914:60:8" - }, - "nodeType": "YulFunctionCall", - "src": "22914:75:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "22906:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "23010:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "23021:3:8", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "23006:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "23006:19:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "23031:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "23037:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "23027:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "23027:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "22999:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "22999:49:8" - }, - "nodeType": "YulExpressionStatement", - "src": "22999:49:8" - }, - { - "nodeType": "YulAssignment", - "src": "23057:83:8", - "value": { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "23126:6:8" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "23135:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "23065:60:8" - }, - "nodeType": "YulFunctionCall", - "src": "23065:75:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "23057:4:8" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "22429:9:8", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "22441:6:8", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "22449:6:8", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "22457:6:8", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "22465:6:8", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "22473:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "22484:4:8", - "type": "" - } - ], - "src": "22228:919:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "23197:261:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "23207:25:8", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "23230:1:8" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "23212:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "23212:20:8" - }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "23207:1:8" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "23241:25:8", - "value": { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "23264:1:8" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "23246:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "23246:20:8" - }, - "variableNames": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "23241:1:8" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "23404:22:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "23406:16:8" - }, - "nodeType": "YulFunctionCall", - "src": "23406:18:8" - }, - "nodeType": "YulExpressionStatement", - "src": "23406:18:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "23325:1:8" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "23332:66:8", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "23400:1:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "23328:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "23328:74:8" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "23322:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "23322:81:8" - }, - "nodeType": "YulIf", - "src": "23319:107:8" - }, - { - "nodeType": "YulAssignment", - "src": "23436:16:8", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "23447:1:8" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "23450:1:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "23443:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "23443:9:8" - }, - "variableNames": [ - { - "name": "sum", - "nodeType": "YulIdentifier", - "src": "23436:3:8" - } - ] - } - ] - }, - "name": "checked_add_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "23184:1:8", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "23187:1:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nodeType": "YulTypedName", - "src": "23193:3:8", - "type": "" - } - ], - "src": "23153:305:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "23578:34:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "23588:18:8", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "23603:3:8" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "23588:11:8" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "23550:3:8", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "23555:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "23566:11:8", - "type": "" - } - ], - "src": "23464:148:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "23724:67:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "23746:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "23754:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "23742:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "23742:14:8" - }, - { - "hexValue": "416363657373436f6e74726f6c3a206163636f756e7420", - "kind": "string", - "nodeType": "YulLiteral", - "src": "23758:25:8", - "type": "", - "value": "AccessControl: account " - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "23735:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "23735:49:8" - }, - "nodeType": "YulExpressionStatement", - "src": "23735:49:8" - } - ] - }, - "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "23716:6:8", - "type": "" - } - ], - "src": "23618:173:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "23961:238:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "23971:92:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "24055:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "24060:2:8", - "type": "", - "value": "23" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "23978:76:8" - }, - "nodeType": "YulFunctionCall", - "src": "23978:85:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "23971:3:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "24161:3:8" - } - ], - "functionName": { - "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", - "nodeType": "YulIdentifier", - "src": "24072:88:8" - }, - "nodeType": "YulFunctionCall", - "src": "24072:93:8" - }, - "nodeType": "YulExpressionStatement", - "src": "24072:93:8" - }, - { - "nodeType": "YulAssignment", - "src": "24174:19:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "24185:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "24190:2:8", - "type": "", - "value": "23" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "24181:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "24181:12:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "24174:3:8" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "23949:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "23957:3:8", - "type": "" - } - ], - "src": "23797:402:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "24315:267:8", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "24325:53:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "24372:5:8" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "24339:32:8" - }, - "nodeType": "YulFunctionCall", - "src": "24339:39:8" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "24329:6:8", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "24387:96:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "24471:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "24476:6:8" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "24394:76:8" - }, - "nodeType": "YulFunctionCall", - "src": "24394:89:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "24387:3:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "24518:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "24525:4:8", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "24514:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "24514:16:8" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "24532:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "24537:6:8" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "24492:21:8" - }, - "nodeType": "YulFunctionCall", - "src": "24492:52:8" - }, - "nodeType": "YulExpressionStatement", - "src": "24492:52:8" - }, - { - "nodeType": "YulAssignment", - "src": "24553:23:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "24564:3:8" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "24569:6:8" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "24560:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "24560:16:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "24553:3:8" - } - ] - } - ] - }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "24296:5:8", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "24303:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "24311:3:8", - "type": "" - } - ], - "src": "24205:377:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "24694:61:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "24716:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "24724:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "24712:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "24712:14:8" - }, - { - "hexValue": "206973206d697373696e6720726f6c6520", - "kind": "string", - "nodeType": "YulLiteral", - "src": "24728:19:8", - "type": "", - "value": " is missing role " - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "24705:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "24705:43:8" - }, - "nodeType": "YulExpressionStatement", - "src": "24705:43:8" - } - ] - }, - "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "24686:6:8", - "type": "" - } - ], - "src": "24588:167:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "24925:238:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "24935:92:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "25019:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "25024:2:8", - "type": "", - "value": "17" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "24942:76:8" - }, - "nodeType": "YulFunctionCall", - "src": "24942:85:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "24935:3:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "25125:3:8" - } - ], - "functionName": { - "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", - "nodeType": "YulIdentifier", - "src": "25036:88:8" - }, - "nodeType": "YulFunctionCall", - "src": "25036:93:8" - }, - "nodeType": "YulExpressionStatement", - "src": "25036:93:8" - }, - { - "nodeType": "YulAssignment", - "src": "25138:19:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "25149:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "25154:2:8", - "type": "", - "value": "17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "25145:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "25145:12:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "25138:3:8" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "24913:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "24921:3:8", - "type": "" - } - ], - "src": "24761:402:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "25555:581:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "25566:155:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "25717:3:8" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "25573:142:8" - }, - "nodeType": "YulFunctionCall", - "src": "25573:148:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "25566:3:8" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "25731:102:8", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "25820:6:8" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "25829:3:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "25738:81:8" - }, - "nodeType": "YulFunctionCall", - "src": "25738:95:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "25731:3:8" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "25843:155:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "25994:3:8" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "25850:142:8" - }, - "nodeType": "YulFunctionCall", - "src": "25850:148:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "25843:3:8" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "26008:102:8", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "26097:6:8" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "26106:3:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "26015:81:8" - }, - "nodeType": "YulFunctionCall", - "src": "26015:95:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "26008:3:8" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "26120:10:8", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "26127:3:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "26120:3:8" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "25526:3:8", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "25532:6:8", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "25540:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "25551:3:8", - "type": "" - } - ], - "src": "25169:967:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "26260:195:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "26270:26:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "26282:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "26293:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "26278:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "26278:18:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "26270:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "26317:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "26328:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "26313:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "26313:17:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "26336:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "26342:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "26332:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "26332:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "26306:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "26306:47:8" - }, - "nodeType": "YulExpressionStatement", - "src": "26306:47:8" - }, - { - "nodeType": "YulAssignment", - "src": "26362:86:8", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "26434:6:8" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "26443:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "26370:63:8" - }, - "nodeType": "YulFunctionCall", - "src": "26370:78:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "26362:4:8" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "26232:9:8", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "26244:6:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "26255:4:8", - "type": "" - } - ], - "src": "26142:313:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "26509:300:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "26519:25:8", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "26542:1:8" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "26524:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "26524:20:8" - }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "26519:1:8" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "26553:25:8", - "value": { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "26576:1:8" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "26558:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "26558:20:8" - }, - "variableNames": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "26553:1:8" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "26751:22:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "26753:16:8" - }, - "nodeType": "YulFunctionCall", - "src": "26753:18:8" - }, - "nodeType": "YulExpressionStatement", - "src": "26753:18:8" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "26663:1:8" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "26656:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "26656:9:8" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "26649:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "26649:17:8" - }, - { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "26671:1:8" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "26678:66:8", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - }, - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "26746:1:8" - } - ], - "functionName": { - "name": "div", - "nodeType": "YulIdentifier", - "src": "26674:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "26674:74:8" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "26668:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "26668:81:8" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "26645:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "26645:105:8" - }, - "nodeType": "YulIf", - "src": "26642:131:8" - }, - { - "nodeType": "YulAssignment", - "src": "26783:20:8", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "26798:1:8" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "26801:1:8" - } - ], - "functionName": { - "name": "mul", - "nodeType": "YulIdentifier", - "src": "26794:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "26794:9:8" - }, - "variableNames": [ - { - "name": "product", - "nodeType": "YulIdentifier", - "src": "26783:7:8" - } - ] - } - ] - }, - "name": "checked_mul_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "26492:1:8", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "26495:1:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "product", - "nodeType": "YulTypedName", - "src": "26501:7:8", - "type": "" - } - ], - "src": "26461:348:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "26858:128:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "26868:33:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "26895:5:8" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "26877:17:8" - }, - "nodeType": "YulFunctionCall", - "src": "26877:24:8" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "26868:5:8" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "26929:22:8", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "26931:16:8" - }, - "nodeType": "YulFunctionCall", - "src": "26931:18:8" - }, - "nodeType": "YulExpressionStatement", - "src": "26931:18:8" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "26916:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "26923:4:8", - "type": "", - "value": "0x00" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "26913:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "26913:15:8" - }, - "nodeType": "YulIf", - "src": "26910:41:8" - }, - { - "nodeType": "YulAssignment", - "src": "26960:20:8", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "26971:5:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "26978:1:8", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "26967:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "26967:13:8" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "26960:3:8" - } - ] - } - ] - }, - "name": "decrement_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "26844:5:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "26854:3:8", - "type": "" - } - ], - "src": "26815:171:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "27098:76:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "27120:6:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27128:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "27116:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "27116:14:8" - }, - { - "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", - "kind": "string", - "nodeType": "YulLiteral", - "src": "27132:34:8", - "type": "", - "value": "Strings: hex length insufficient" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "27109:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "27109:58:8" - }, - "nodeType": "YulExpressionStatement", - "src": "27109:58:8" - } - ] - }, - "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "27090:6:8", - "type": "" - } - ], - "src": "26992:182:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "27326:220:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "27336:74:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "27402:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27407:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "27343:58:8" - }, - "nodeType": "YulFunctionCall", - "src": "27343:67:8" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "27336:3:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "27508:3:8" - } - ], - "functionName": { - "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", - "nodeType": "YulIdentifier", - "src": "27419:88:8" - }, - "nodeType": "YulFunctionCall", - "src": "27419:93:8" - }, - "nodeType": "YulExpressionStatement", - "src": "27419:93:8" - }, - { - "nodeType": "YulAssignment", - "src": "27521:19:8", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "27532:3:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27537:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "27528:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "27528:12:8" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "27521:3:8" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "27314:3:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "27322:3:8", - "type": "" - } - ], - "src": "27180:366:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "27723:248:8", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "27733:26:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "27745:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27756:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "27741:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "27741:18:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "27733:4:8" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "27780:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27791:1:8", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "27776:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "27776:17:8" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "27799:4:8" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "27805:9:8" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "27795:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "27795:20:8" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "27769:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "27769:47:8" - }, - "nodeType": "YulExpressionStatement", - "src": "27769:47:8" - }, - { - "nodeType": "YulAssignment", - "src": "27825:139:8", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "27959:4:8" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "27833:124:8" - }, - "nodeType": "YulFunctionCall", - "src": "27833:131:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "27825:4:8" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "27703:9:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "27718:4:8", - "type": "" - } - ], - "src": "27552:419:8" - } - ] - }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct DAppStore.App -> struct DAppStore.App\n function abi_encode_t_struct$_App_$815_memory_ptr_to_t_struct$_App_$815_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0xa0)\n\n {\n // appID\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // appOwner\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // appName\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appIPFSHash\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appAddData\n\n let memberValue0 := mload(add(value, 0x80))\n\n mstore(add(pos, 0x80), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_App_$815_memory_ptr__to_t_struct$_App_$815_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_App_$815_memory_ptr_to_t_struct$_App_$815_memory_ptr_fromStack(value0, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5(memPtr) {\n\n mstore(add(memPtr, 0), \"Already verified\")\n\n }\n\n function abi_encode_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n mstore(add(memPtr, 32), \" roles for self\")\n\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner of dapp\")\n\n }\n\n function abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n mstore(add(memPtr, 32), \"dy initialized\")\n\n }\n\n function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, 0x20)\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: account \")\n\n }\n\n function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n end := add(pos, 23)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n mstore(add(memPtr, 0), \" is missing role \")\n\n }\n\n function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n }\n\n function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", - "id": 8, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "6080604052600436106101095760003560e01c8063887e4b8611610095578063ab444f2811610064578063ab444f2814610379578063d547741f146103a2578063e58cdd90146103cb578063e73173a4146103f4578063f9a6cbae1461041057610109565b8063887e4b86146102ab57806391d14854146102e8578063a217fddf14610325578063a920b78c1461035057610109565b806336568abe116100dc57806336568abe146101da5780635cadd4a9146102035780636df693d31461022c57806375b238fc146102555780637ba136801461028057610109565b806301ffc9a71461010e5780631805d79f1461014b578063248a9ca3146101745780632f2ff15d146101b1575b600080fd5b34801561011a57600080fd5b50610135600480360381019061013091906115fe565b61043b565b6040516101429190611646565b60405180910390f35b34801561015757600080fd5b50610172600480360381019061016d9190611697565b6104b5565b005b34801561018057600080fd5b5061019b600480360381019061019691906116fa565b6105b5565b6040516101a89190611736565b60405180910390f35b3480156101bd57600080fd5b506101d860048036038101906101d391906117af565b6105d5565b005b3480156101e657600080fd5b5061020160048036038101906101fc91906117af565b6105fe565b005b34801561020f57600080fd5b5061022a60048036038101906102259190611697565b610681565b005b34801561023857600080fd5b50610253600480360381019061024e9190611697565b6107a5565b005b34801561026157600080fd5b5061026a6107df565b6040516102779190611736565b60405180910390f35b34801561028c57600080fd5b50610295610803565b6040516102a291906117fe565b60405180910390f35b3480156102b757600080fd5b506102d260048036038101906102cd9190611697565b610809565b6040516102df9190611954565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a91906117af565b610a59565b60405161031c9190611646565b60405180910390f35b34801561033157600080fd5b5061033a610ac4565b6040516103479190611736565b60405180910390f35b34801561035c57600080fd5b50610377600480360381019061037291906119db565b610acb565b005b34801561038557600080fd5b506103a0600480360381019061039b9190611b6b565b610c29565b005b3480156103ae57600080fd5b506103c960048036038101906103c491906117af565b610d87565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190611c26565b610db0565b005b61040e60048036038101906104099190611c66565b610e06565b005b34801561041c57600080fd5b50610425610f89565b60405161043291906117fe565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104ae57506104ad82610f8f565b5b9050919050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756104e7816104e2610ff9565b611001565b600015156009600084815260200190815260200160002060009054906101000a900460ff1615151461054e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054590611d6a565b60405180910390fd5b60016009600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f19c567786dbc11ad5299760ad5f30bd149748ab79fafc96892ec5c0b0b72b735826040516105a991906117fe565b60405180910390a15050565b600060016000838152602001908152602001600020600101549050919050565b6105de826105b5565b6105ef816105ea610ff9565b611001565b6105f9838361109e565b505050565b610606610ff9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066a90611dfc565b60405180910390fd5b61067d828261117e565b5050565b3373ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071990611e68565b60405180910390fd5b7f429e5a8f4e1289616a7ca758e14bd7070bbdb21d11f443824c6738d41b4432c28160405161075191906117fe565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6003549081150290604051600060405180830381858888f193505050501580156107a1573d6000803e3d6000fd5b5050565b7f776ec9d2ad2a989538db0c4f163462480d393f71e37a4ffd62689425ec14a08e816040516107d491906117fe565b60405180910390a150565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60035481565b6108116114aa565b6040518060a001604052808381526020016004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160056000858152602001908152602001600020805461088f90611eb7565b80601f01602080910402602001604051908101604052809291908181526020018280546108bb90611eb7565b80156109085780601f106108dd57610100808354040283529160200191610908565b820191906000526020600020905b8154815290600101906020018083116108eb57829003601f168201915b5050505050815260200160066000858152602001908152602001600020805461093090611eb7565b80601f016020809104026020016040519081016040528092919081815260200182805461095c90611eb7565b80156109a95780601f1061097e576101008083540402835291602001916109a9565b820191906000526020600020905b81548152906001019060200180831161098c57829003601f168201915b505050505081526020016007600085815260200190815260200160002080546109d190611eb7565b80601f01602080910402602001604051908101604052809291908181526020018280546109fd90611eb7565b8015610a4a5780601f10610a1f57610100808354040283529160200191610a4a565b820191906000526020600020905b815481529060010190602001808311610a2d57829003601f168201915b50505050508152509050919050565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b600060019054906101000a900460ff1680610af1575060008054906101000a900460ff16155b610b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2790611f5b565b60405180910390fd5b60008060019054906101000a900460ff161590508015610b80576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8360038190555060005b83839050811015610bf957610be67fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775858584818110610bcc57610bcb611f7b565b5b9050602002016020810190610be19190611faa565b611260565b8080610bf190612006565b915050610b8a565b5060006002819055508015610c235760008060016101000a81548160ff0219169083151502179055505b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166004600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc190611e68565b60405180910390fd5b82600560008681526020019081526020016000209080519060200190610cf19291906114ef565b5081600660008681526020019081526020016000209080519060200190610d199291906114ef565b5080600760008681526020019081526020016000209080519060200190610d419291906114ef565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd86208433858585604051610d79959493929190612097565b60405180910390a150505050565b610d90826105b5565b610da181610d9c610ff9565b611001565b610dab838361117e565b505050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3360046000600254815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826005600060025481526020019081526020016000209080519060200190610e839291906114ef565b50816006600060025481526020019081526020016000209080519060200190610ead9291906114ef565b50806007600060025481526020019081526020016000209080519060200190610ed79291906114ef565b5042600860006002548152602001908152602001600020819055507f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc3860025433600560006002548152602001908152602001600020600660006002548152602001908152602001600020600760006002548152602001908152602001600020604051610f67959493929190612194565b60405180910390a16001600254610f7e91906121fc565b600281905550505050565b60025481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b61100b8282610a59565b61109a576110308173ffffffffffffffffffffffffffffffffffffffff16601461126e565b61103e8360001c602061126e565b60405160200161104f929190612326565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110919190612360565b60405180910390fd5b5050565b6110a88282610a59565b61117a57600180600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061111f610ff9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6111888282610a59565b1561125c5760006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611201610ff9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61126a828261109e565b5050565b6060600060028360026112819190612382565b61128b91906121fc565b67ffffffffffffffff8111156112a4576112a3611a40565b5b6040519080825280601f01601f1916602001820160405280156112d65781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061130e5761130d611f7b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061137257611371611f7b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026113b29190612382565b6113bc91906121fc565b90505b600181111561145c577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106113fe576113fd611f7b565b5b1a60f81b82828151811061141557611414611f7b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611455906123dc565b90506113bf565b50600084146114a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149790612452565b60405180910390fd5b8091505092915050565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b8280546114fb90611eb7565b90600052602060002090601f01602090048101928261151d5760008555611564565b82601f1061153657805160ff1916838001178555611564565b82800160010185558215611564579182015b82811115611563578251825591602001919060010190611548565b5b5090506115719190611575565b5090565b5b8082111561158e576000816000905550600101611576565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6115db816115a6565b81146115e657600080fd5b50565b6000813590506115f8816115d2565b92915050565b6000602082840312156116145761161361159c565b5b6000611622848285016115e9565b91505092915050565b60008115159050919050565b6116408161162b565b82525050565b600060208201905061165b6000830184611637565b92915050565b6000819050919050565b61167481611661565b811461167f57600080fd5b50565b6000813590506116918161166b565b92915050565b6000602082840312156116ad576116ac61159c565b5b60006116bb84828501611682565b91505092915050565b6000819050919050565b6116d7816116c4565b81146116e257600080fd5b50565b6000813590506116f4816116ce565b92915050565b6000602082840312156117105761170f61159c565b5b600061171e848285016116e5565b91505092915050565b611730816116c4565b82525050565b600060208201905061174b6000830184611727565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061177c82611751565b9050919050565b61178c81611771565b811461179757600080fd5b50565b6000813590506117a981611783565b92915050565b600080604083850312156117c6576117c561159c565b5b60006117d4858286016116e5565b92505060206117e58582860161179a565b9150509250929050565b6117f881611661565b82525050565b600060208201905061181360008301846117ef565b92915050565b61182281611661565b82525050565b61183181611771565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611871578082015181840152602081019050611856565b83811115611880576000848401525b50505050565b6000601f19601f8301169050919050565b60006118a282611837565b6118ac8185611842565b93506118bc818560208601611853565b6118c581611886565b840191505092915050565b600060a0830160008301516118e86000860182611819565b5060208301516118fb6020860182611828565b50604083015184820360408601526119138282611897565b9150506060830151848203606086015261192d8282611897565b915050608083015184820360808601526119478282611897565b9150508091505092915050565b6000602082019050818103600083015261196e81846118d0565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261199b5761199a611976565b5b8235905067ffffffffffffffff8111156119b8576119b761197b565b5b6020830191508360208202830111156119d4576119d3611980565b5b9250929050565b6000806000604084860312156119f4576119f361159c565b5b6000611a0286828701611682565b935050602084013567ffffffffffffffff811115611a2357611a226115a1565b5b611a2f86828701611985565b92509250509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611a7882611886565b810181811067ffffffffffffffff82111715611a9757611a96611a40565b5b80604052505050565b6000611aaa611592565b9050611ab68282611a6f565b919050565b600067ffffffffffffffff821115611ad657611ad5611a40565b5b611adf82611886565b9050602081019050919050565b82818337600083830152505050565b6000611b0e611b0984611abb565b611aa0565b905082815260208101848484011115611b2a57611b29611a3b565b5b611b35848285611aec565b509392505050565b600082601f830112611b5257611b51611976565b5b8135611b62848260208601611afb565b91505092915050565b60008060008060808587031215611b8557611b8461159c565b5b6000611b9387828801611682565b945050602085013567ffffffffffffffff811115611bb457611bb36115a1565b5b611bc087828801611b3d565b935050604085013567ffffffffffffffff811115611be157611be06115a1565b5b611bed87828801611b3d565b925050606085013567ffffffffffffffff811115611c0e57611c0d6115a1565b5b611c1a87828801611b3d565b91505092959194509250565b60008060408385031215611c3d57611c3c61159c565b5b6000611c4b8582860161179a565b9250506020611c5c85828601611682565b9150509250929050565b600080600060608486031215611c7f57611c7e61159c565b5b600084013567ffffffffffffffff811115611c9d57611c9c6115a1565b5b611ca986828701611b3d565b935050602084013567ffffffffffffffff811115611cca57611cc96115a1565b5b611cd686828701611b3d565b925050604084013567ffffffffffffffff811115611cf757611cf66115a1565b5b611d0386828701611b3d565b9150509250925092565b600082825260208201905092915050565b7f416c726561647920766572696669656400000000000000000000000000000000600082015250565b6000611d54601083611d0d565b9150611d5f82611d1e565b602082019050919050565b60006020820190508181036000830152611d8381611d47565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000611de6602f83611d0d565b9150611df182611d8a565b604082019050919050565b60006020820190508181036000830152611e1581611dd9565b9050919050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000611e52601183611d0d565b9150611e5d82611e1c565b602082019050919050565b60006020820190508181036000830152611e8181611e45565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ecf57607f821691505b60208210811415611ee357611ee2611e88565b5b50919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000611f45602e83611d0d565b9150611f5082611ee9565b604082019050919050565b60006020820190508181036000830152611f7481611f38565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215611fc057611fbf61159c565b5b6000611fce8482850161179a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061201182611661565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561204457612043611fd7565b5b600182019050919050565b61205881611771565b82525050565b600061206982611837565b6120738185611d0d565b9350612083818560208601611853565b61208c81611886565b840191505092915050565b600060a0820190506120ac60008301886117ef565b6120b9602083018761204f565b81810360408301526120cb818661205e565b905081810360608301526120df818561205e565b905081810360808301526120f3818461205e565b90509695505050505050565b60008190508160005260206000209050919050565b6000815461212181611eb7565b61212b8186611d0d565b9450600182166000811461214657600181146121585761218b565b60ff198316865260208601935061218b565b612161856120ff565b60005b8381101561218357815481890152600182019150602081019050612164565b808801955050505b50505092915050565b600060a0820190506121a960008301886117ef565b6121b6602083018761204f565b81810360408301526121c88186612114565b905081810360608301526121dc8185612114565b905081810360808301526121f08184612114565b90509695505050505050565b600061220782611661565b915061221283611661565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561224757612246611fd7565b5b828201905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000612293601783612252565b915061229e8261225d565b601782019050919050565b60006122b482611837565b6122be8185612252565b93506122ce818560208601611853565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000612310601183612252565b915061231b826122da565b601182019050919050565b600061233182612286565b915061233d82856122a9565b915061234882612303565b915061235482846122a9565b91508190509392505050565b6000602082019050818103600083015261237a818461205e565b905092915050565b600061238d82611661565b915061239883611661565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123d1576123d0611fd7565b5b828202905092915050565b60006123e782611661565b915060008214156123fb576123fa611fd7565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061243c602083611d0d565b915061244782612406565b602082019050919050565b6000602082019050818103600083015261246b8161242f565b905091905056fea2646970667358221220f4f34f49ab6a46f19754585d1efcd657815b4da212d138cbd9be83473d5405ed64736f6c63430008090033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x109 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x887E4B86 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xAB444F28 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xAB444F28 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0xE58CDD90 EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0xE73173A4 EQ PUSH2 0x3F4 JUMPI DUP1 PUSH4 0xF9A6CBAE EQ PUSH2 0x410 JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0x887E4B86 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x325 JUMPI DUP1 PUSH4 0xA920B78C EQ PUSH2 0x350 JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x5CADD4A9 EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0x6DF693D3 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0x75B238FC EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0x7BA13680 EQ PUSH2 0x280 JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x1805D79F EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1B1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x135 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x130 SWAP2 SWAP1 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x142 SWAP2 SWAP1 PUSH2 0x1646 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x172 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16D SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST PUSH2 0x4B5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x196 SWAP2 SWAP1 PUSH2 0x16FA JUMP JUMPDEST PUSH2 0x5B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x1736 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH2 0x5D5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x201 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH2 0x5FE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST PUSH2 0x681 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST PUSH2 0x7A5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x7DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0x1736 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x803 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CD SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST PUSH2 0x809 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DF SWAP2 SWAP1 PUSH2 0x1954 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30A SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH2 0xA59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31C SWAP2 SWAP1 PUSH2 0x1646 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33A PUSH2 0xAC4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x347 SWAP2 SWAP1 PUSH2 0x1736 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x377 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x372 SWAP2 SWAP1 PUSH2 0x19DB JUMP JUMPDEST PUSH2 0xACB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x385 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39B SWAP2 SWAP1 PUSH2 0x1B6B JUMP JUMPDEST PUSH2 0xC29 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C4 SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH2 0xD87 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x1C26 JUMP JUMPDEST PUSH2 0xDB0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x40E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x409 SWAP2 SWAP1 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0xE06 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x425 PUSH2 0xF89 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x432 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4AE JUMPI POP PUSH2 0x4AD DUP3 PUSH2 0xF8F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 PUSH2 0x4E7 DUP2 PUSH2 0x4E2 PUSH2 0xFF9 JUMP JUMPDEST PUSH2 0x1001 JUMP JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x54E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP1 PUSH2 0x1D6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x19C567786DBC11AD5299760AD5F30BD149748AB79FAFC96892EC5C0B0B72B735 DUP3 PUSH1 0x40 MLOAD PUSH2 0x5A9 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5DE DUP3 PUSH2 0x5B5 JUMP JUMPDEST PUSH2 0x5EF DUP2 PUSH2 0x5EA PUSH2 0xFF9 JUMP JUMPDEST PUSH2 0x1001 JUMP JUMPDEST PUSH2 0x5F9 DUP4 DUP4 PUSH2 0x109E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x606 PUSH2 0xFF9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x673 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x66A SWAP1 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67D DUP3 DUP3 PUSH2 0x117E JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x722 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x719 SWAP1 PUSH2 0x1E68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x429E5A8F4E1289616A7CA758E14BD7070BBDB21D11F443824C6738D41B4432C2 DUP2 PUSH1 0x40 MLOAD PUSH2 0x751 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x3 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x7A1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x776EC9D2AD2A989538DB0C4F163462480D393F71E37A4FFD62689425EC14A08E DUP2 PUSH1 0x40 MLOAD PUSH2 0x7D4 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x811 PUSH2 0x14AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x88F SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x8BB SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x908 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x908 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x930 SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x95C SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9A9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x97E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9A9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x98C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x9D1 SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9FD SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA4A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA1F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA4A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA2D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0xAF1 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0xB30 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB27 SWAP1 PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0xB80 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST DUP4 PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xBF9 JUMPI PUSH2 0xBE6 PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xBCC JUMPI PUSH2 0xBCB PUSH2 0x1F7B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xBE1 SWAP2 SWAP1 PUSH2 0x1FAA JUMP JUMPDEST PUSH2 0x1260 JUMP JUMPDEST DUP1 DUP1 PUSH2 0xBF1 SWAP1 PUSH2 0x2006 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB8A JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x2 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0xC23 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCCA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCC1 SWAP1 PUSH2 0x1E68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xCF1 SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP DUP2 PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xD19 SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP DUP1 PUSH1 0x7 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xD41 SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP PUSH32 0xFD025D83852F29D01B58FD4B19D8CFE0E12AF0EE9F31A7E273EA765CD4DD8620 DUP5 CALLER DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0xD79 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2097 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0xD90 DUP3 PUSH2 0x5B5 JUMP JUMPDEST PUSH2 0xDA1 DUP2 PUSH2 0xD9C PUSH2 0xFF9 JUMP JUMPDEST PUSH2 0x1001 JUMP JUMPDEST PUSH2 0xDAB DUP4 DUP4 PUSH2 0x117E JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST CALLER PUSH1 0x4 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x5 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xE83 SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP DUP2 PUSH1 0x6 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xEAD SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP DUP1 PUSH1 0x7 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xED7 SWAP3 SWAP2 SWAP1 PUSH2 0x14EF JUMP JUMPDEST POP TIMESTAMP PUSH1 0x8 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x54362B36D34EFDDA9F90402E88C73FD5B6D780EA5A94052317E4664B31AACC38 PUSH1 0x2 SLOAD CALLER PUSH1 0x5 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xF67 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2194 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x2 SLOAD PUSH2 0xF7E SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x100B DUP3 DUP3 PUSH2 0xA59 JUMP JUMPDEST PUSH2 0x109A JUMPI PUSH2 0x1030 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x14 PUSH2 0x126E JUMP JUMPDEST PUSH2 0x103E DUP4 PUSH1 0x0 SHR PUSH1 0x20 PUSH2 0x126E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x104F SWAP3 SWAP2 SWAP1 PUSH2 0x2326 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1091 SWAP2 SWAP1 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x10A8 DUP3 DUP3 PUSH2 0xA59 JUMP JUMPDEST PUSH2 0x117A JUMPI PUSH1 0x1 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x111F PUSH2 0xFF9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1188 DUP3 DUP3 PUSH2 0xA59 JUMP JUMPDEST ISZERO PUSH2 0x125C JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1201 PUSH2 0xFF9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x126A DUP3 DUP3 PUSH2 0x109E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x2 DUP4 PUSH1 0x2 PUSH2 0x1281 SWAP2 SWAP1 PUSH2 0x2382 JUMP JUMPDEST PUSH2 0x128B SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12A4 JUMPI PUSH2 0x12A3 PUSH2 0x1A40 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x12D6 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x130E JUMPI PUSH2 0x130D PUSH2 0x1F7B JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1372 JUMPI PUSH2 0x1371 PUSH2 0x1F7B JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH1 0x1 DUP5 PUSH1 0x2 PUSH2 0x13B2 SWAP2 SWAP1 PUSH2 0x2382 JUMP JUMPDEST PUSH2 0x13BC SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x145C JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xF DUP7 AND PUSH1 0x10 DUP2 LT PUSH2 0x13FE JUMPI PUSH2 0x13FD PUSH2 0x1F7B JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1415 JUMPI PUSH2 0x1414 PUSH2 0x1F7B JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 DUP6 SWAP1 SHR SWAP5 POP DUP1 PUSH2 0x1455 SWAP1 PUSH2 0x23DC JUMP JUMPDEST SWAP1 POP PUSH2 0x13BF JUMP JUMPDEST POP PUSH1 0x0 DUP5 EQ PUSH2 0x14A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1497 SWAP1 PUSH2 0x2452 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x14FB SWAP1 PUSH2 0x1EB7 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x151D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1564 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1536 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1564 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1564 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1563 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1548 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1571 SWAP2 SWAP1 PUSH2 0x1575 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x158E JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1576 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15DB DUP2 PUSH2 0x15A6 JUMP JUMPDEST DUP2 EQ PUSH2 0x15E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x15F8 DUP2 PUSH2 0x15D2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1614 JUMPI PUSH2 0x1613 PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1622 DUP5 DUP3 DUP6 ADD PUSH2 0x15E9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1640 DUP2 PUSH2 0x162B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x165B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1637 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1674 DUP2 PUSH2 0x1661 JUMP JUMPDEST DUP2 EQ PUSH2 0x167F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1691 DUP2 PUSH2 0x166B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16AD JUMPI PUSH2 0x16AC PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x16BB DUP5 DUP3 DUP6 ADD PUSH2 0x1682 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16D7 DUP2 PUSH2 0x16C4 JUMP JUMPDEST DUP2 EQ PUSH2 0x16E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F4 DUP2 PUSH2 0x16CE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1710 JUMPI PUSH2 0x170F PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x171E DUP5 DUP3 DUP6 ADD PUSH2 0x16E5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1730 DUP2 PUSH2 0x16C4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x174B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1727 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x177C DUP3 PUSH2 0x1751 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x178C DUP2 PUSH2 0x1771 JUMP JUMPDEST DUP2 EQ PUSH2 0x1797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x17A9 DUP2 PUSH2 0x1783 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17C6 JUMPI PUSH2 0x17C5 PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17D4 DUP6 DUP3 DUP7 ADD PUSH2 0x16E5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x17E5 DUP6 DUP3 DUP7 ADD PUSH2 0x179A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x17F8 DUP2 PUSH2 0x1661 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1813 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x17EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1822 DUP2 PUSH2 0x1661 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1831 DUP2 PUSH2 0x1771 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1871 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1856 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A2 DUP3 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x18AC DUP2 DUP6 PUSH2 0x1842 JUMP JUMPDEST SWAP4 POP PUSH2 0x18BC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1853 JUMP JUMPDEST PUSH2 0x18C5 DUP2 PUSH2 0x1886 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x18E8 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x1819 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x18FB PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1828 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1913 DUP3 DUP3 PUSH2 0x1897 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x192D DUP3 DUP3 PUSH2 0x1897 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x1947 DUP3 DUP3 PUSH2 0x1897 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x196E DUP2 DUP5 PUSH2 0x18D0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x199B JUMPI PUSH2 0x199A PUSH2 0x1976 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19B8 JUMPI PUSH2 0x19B7 PUSH2 0x197B JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x19D4 JUMPI PUSH2 0x19D3 PUSH2 0x1980 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x19F4 JUMPI PUSH2 0x19F3 PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A02 DUP7 DUP3 DUP8 ADD PUSH2 0x1682 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A23 JUMPI PUSH2 0x1A22 PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1A2F DUP7 DUP3 DUP8 ADD PUSH2 0x1985 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1A78 DUP3 PUSH2 0x1886 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1A97 JUMPI PUSH2 0x1A96 PUSH2 0x1A40 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AAA PUSH2 0x1592 JUMP JUMPDEST SWAP1 POP PUSH2 0x1AB6 DUP3 DUP3 PUSH2 0x1A6F JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1AD6 JUMPI PUSH2 0x1AD5 PUSH2 0x1A40 JUMP JUMPDEST JUMPDEST PUSH2 0x1ADF DUP3 PUSH2 0x1886 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B0E PUSH2 0x1B09 DUP5 PUSH2 0x1ABB JUMP JUMPDEST PUSH2 0x1AA0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1B2A JUMPI PUSH2 0x1B29 PUSH2 0x1A3B JUMP JUMPDEST JUMPDEST PUSH2 0x1B35 DUP5 DUP3 DUP6 PUSH2 0x1AEC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1B52 JUMPI PUSH2 0x1B51 PUSH2 0x1976 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1B62 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1AFB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1B85 JUMPI PUSH2 0x1B84 PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B93 DUP8 DUP3 DUP9 ADD PUSH2 0x1682 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BB4 JUMPI PUSH2 0x1BB3 PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1BC0 DUP8 DUP3 DUP9 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE1 JUMPI PUSH2 0x1BE0 PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1BED DUP8 DUP3 DUP9 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C0E JUMPI PUSH2 0x1C0D PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1C1A DUP8 DUP3 DUP9 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C3D JUMPI PUSH2 0x1C3C PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C4B DUP6 DUP3 DUP7 ADD PUSH2 0x179A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C5C DUP6 DUP3 DUP7 ADD PUSH2 0x1682 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1C7F JUMPI PUSH2 0x1C7E PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C9D JUMPI PUSH2 0x1C9C PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1CA9 DUP7 DUP3 DUP8 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CCA JUMPI PUSH2 0x1CC9 PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1CD6 DUP7 DUP3 DUP8 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CF7 JUMPI PUSH2 0x1CF6 PUSH2 0x15A1 JUMP JUMPDEST JUMPDEST PUSH2 0x1D03 DUP7 DUP3 DUP8 ADD PUSH2 0x1B3D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416C726561647920766572696669656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D54 PUSH1 0x10 DUP4 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 POP PUSH2 0x1D5F DUP3 PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1D83 DUP2 PUSH2 0x1D47 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DE6 PUSH1 0x2F DUP4 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 POP PUSH2 0x1DF1 DUP3 PUSH2 0x1D8A JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1E15 DUP2 PUSH2 0x1DD9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F662064617070000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E52 PUSH1 0x11 DUP4 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 POP PUSH2 0x1E5D DUP3 PUSH2 0x1E1C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1E81 DUP2 PUSH2 0x1E45 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1ECF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1EE3 JUMPI PUSH2 0x1EE2 PUSH2 0x1E88 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F45 PUSH1 0x2E DUP4 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 POP PUSH2 0x1F50 DUP3 PUSH2 0x1EE9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F74 DUP2 PUSH2 0x1F38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FC0 JUMPI PUSH2 0x1FBF PUSH2 0x159C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FCE DUP5 DUP3 DUP6 ADD PUSH2 0x179A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2011 DUP3 PUSH2 0x1661 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x2044 JUMPI PUSH2 0x2043 PUSH2 0x1FD7 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2058 DUP2 PUSH2 0x1771 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2069 DUP3 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x2073 DUP2 DUP6 PUSH2 0x1D0D JUMP JUMPDEST SWAP4 POP PUSH2 0x2083 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1853 JUMP JUMPDEST PUSH2 0x208C DUP2 PUSH2 0x1886 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x20AC PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x20B9 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x204F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x20CB DUP2 DUP7 PUSH2 0x205E JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x20DF DUP2 DUP6 PUSH2 0x205E JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x20F3 DUP2 DUP5 PUSH2 0x205E JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2121 DUP2 PUSH2 0x1EB7 JUMP JUMPDEST PUSH2 0x212B DUP2 DUP7 PUSH2 0x1D0D JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2146 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2158 JUMPI PUSH2 0x218B JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP PUSH2 0x218B JUMP JUMPDEST PUSH2 0x2161 DUP6 PUSH2 0x20FF JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2183 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2164 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x21A9 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x21B6 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x204F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x21C8 DUP2 DUP7 PUSH2 0x2114 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x21DC DUP2 DUP6 PUSH2 0x2114 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x21F0 DUP2 DUP5 PUSH2 0x2114 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2207 DUP3 PUSH2 0x1661 JUMP JUMPDEST SWAP2 POP PUSH2 0x2212 DUP4 PUSH2 0x1661 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2247 JUMPI PUSH2 0x2246 PUSH2 0x1FD7 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2293 PUSH1 0x17 DUP4 PUSH2 0x2252 JUMP JUMPDEST SWAP2 POP PUSH2 0x229E DUP3 PUSH2 0x225D JUMP JUMPDEST PUSH1 0x17 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22B4 DUP3 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x22BE DUP2 DUP6 PUSH2 0x2252 JUMP JUMPDEST SWAP4 POP PUSH2 0x22CE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1853 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2310 PUSH1 0x11 DUP4 PUSH2 0x2252 JUMP JUMPDEST SWAP2 POP PUSH2 0x231B DUP3 PUSH2 0x22DA JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2331 DUP3 PUSH2 0x2286 JUMP JUMPDEST SWAP2 POP PUSH2 0x233D DUP3 DUP6 PUSH2 0x22A9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2348 DUP3 PUSH2 0x2303 JUMP JUMPDEST SWAP2 POP PUSH2 0x2354 DUP3 DUP5 PUSH2 0x22A9 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x237A DUP2 DUP5 PUSH2 0x205E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238D DUP3 PUSH2 0x1661 JUMP JUMPDEST SWAP2 POP PUSH2 0x2398 DUP4 PUSH2 0x1661 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x23D1 JUMPI PUSH2 0x23D0 PUSH2 0x1FD7 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E7 DUP3 PUSH2 0x1661 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x23FB JUMPI PUSH2 0x23FA PUSH2 0x1FD7 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x243C PUSH1 0x20 DUP4 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 POP PUSH2 0x2447 DUP3 PUSH2 0x2406 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x246B DUP2 PUSH2 0x242F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL RETURN 0x4F 0x49 0xAB PUSH11 0x46F19754585D1EFCD65781 JUMPDEST 0x4D LOG2 SLT 0xD1 CODESIZE 0xCB 0xD9 0xBE DUP4 SELFBALANCE RETURNDATASIZE SLOAD SDIV 0xED PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ", - "sourceMap": "198:3038:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2605:202:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2829:203:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3977:121:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4348:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5365:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2440:383:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3038:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;260:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;352:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2254:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2894:137:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2012:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;927:250:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1854:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4727:147:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3122:111:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1332:516;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;326:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2605:202:1;2690:4;2728:32;2713:47;;;:11;:47;;;;:87;;;;2764:36;2788:11;2764:23;:36::i;:::-;2713:87;2706:94;;2605:202;;;:::o;2829:203:7:-;297:23;2490:30:1;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;2931:5:7::1;2908:28;;:11;:19;2920:6;2908:19;;;;;;;;;;;;;;;;;;;;;:28;;;2900:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2989:4;2967:11;:19;2979:6;2967:19;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3008:17;3018:6;3008:17;;;;;;:::i;:::-;;;;;;;;2829:203:::0;;:::o;3977:121:1:-;4043:7;4069:6;:12;4076:4;4069:12;;;;;;;;;;;:22;;;4062:29;;3977:121;;;:::o;4348:145::-;4431:18;4444:4;4431:12;:18::i;:::-;2490:30;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;4461:25:::1;4472:4;4478:7;4461:10;:25::i;:::-;4348:145:::0;;;:::o;5365:214::-;5471:12;:10;:12::i;:::-;5460:23;;:7;:23;;;5452:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5546:26;5558:4;5564:7;5546:11;:26::i;:::-;5365:214;;:::o;2440:383:7:-;2520:10;2499:31;;:9;:17;2509:6;2499:17;;;;;;;;;;;;;;;;;;;;;:31;;;2491:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;2747:18;2758:6;2747:18;;;;;;:::i;:::-;;;;;;;;2783:10;2775:28;;:41;2804:11;;2775:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2440:383;:::o;3038:78::-;3092:17;3102:6;3092:17;;;;;;:::i;:::-;;;;;;;;3038:78;:::o;260:60::-;297:23;260:60;:::o;352:23::-;;;;:::o;2254:180::-;2310:10;;:::i;:::-;2339:88;;;;;;;;2343:6;2339:88;;;;2351:9;:17;2361:6;2351:17;;;;;;;;;;;;;;;;;;;;;2339:88;;;;;;2370:7;:15;2378:6;2370:15;;;;;;;;;;;2339:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2387:11;:19;2399:6;2387:19;;;;;;;;;;;2339:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2408:10;:18;2419:6;2408:18;;;;;;;;;;;2339:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2332:95;;2254:180;;;:::o;2894:137:1:-;2972:4;2995:6;:12;3002:4;2995:12;;;;;;;;;;;:20;;:29;3016:7;2995:29;;;;;;;;;;;;;;;;;;;;;;;;;2988:36;;2894:137;;;;:::o;2012:49::-;2057:4;2012:49;;;:::o;927:250:7:-;2030:13:0;;;;;;;;;;;:30;;;;2048:12;;;;;;;;;;2047:13;2030:30;2022:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;2122:19;2145:13;;;;;;;;;;;2144:14;2122:36;;2172:14;2168:98;;;2218:4;2202:13;;:20;;;;;;;;;;;;;;;;;;2251:4;2236:12;;:19;;;;;;;;;;;;;;;;;;2168:98;1036:12:7::1;1022:11;:26;;;;1062:6;1058:94;1075:6;;:13;;1073:1;:15;1058:94;;;1108:33;297:23;1131:6;;1138:1;1131:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1108:10;:33::i;:::-;1089:3;;;;;:::i;:::-;;;;1058:94;;;;1169:1;1161:5;:9;;;;2292:14:0::0;2288:66;;;2338:5;2322:13;;:21;;;;;;;;;;;;;;;;;;2288:66;2012:348;927:250:7;;;:::o;1854:394::-;2010:10;1989:31;;:9;:17;1999:6;1989:17;;;;;;;;;;;;;;;;;;;;;:31;;;1981:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;2070:5;2052:7;:15;2060:6;2052:15;;;;;;;;;;;:23;;;;;;;;;;;;:::i;:::-;;2107:9;2085:11;:19;2097:6;2085:19;;;;;;;;;;;:31;;;;;;;;;;;;:::i;:::-;;2147:15;2126:10;:18;2137:6;2126:18;;;;;;;;;;;:36;;;;;;;;;;;;:::i;:::-;;2177:64;2187:6;2195:10;2207:5;2214:9;2225:15;2177:64;;;;;;;;;;:::i;:::-;;;;;;;;1854:394;;;;:::o;4727:147:1:-;4811:18;4824:4;4811:12;:18::i;:::-;2490:30;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;4841:26:::1;4853:4;4859:7;4841:11;:26::i;:::-;4727:147:::0;;;:::o;3122:111:7:-;3217:9;3197;:17;3207:6;3197:17;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3122:111;;:::o;1332:516::-;1547:10;1528:9;:16;1538:5;;1528:16;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1584:5;1567:7;:14;1575:5;;1567:14;;;;;;;;;;;:22;;;;;;;;;;;;:::i;:::-;;1620:9;1599:11;:18;1611:5;;1599:18;;;;;;;;;;;:30;;;;;;;;;;;;:::i;:::-;;1659:15;1639:10;:17;1650:5;;1639:17;;;;;;;;;;;:35;;;;;;;;;;;;:::i;:::-;;1704:15;1684:10;:17;1695:5;;1684:17;;;;;;;;;;;:35;;;;1734:80;1741:5;;1748:10;1760:7;:14;1768:5;;1760:14;;;;;;;;;;;1776:11;:18;1788:5;;1776:18;;;;;;;;;;;1796:10;:17;1807:5;;1796:17;;;;;;;;;;;1734:80;;;;;;;;;;:::i;:::-;;;;;;;;1840:1;1832:5;;:9;;;;:::i;:::-;1824:5;:17;;;;1332:516;;;:::o;326:20::-;;;;:::o;829:155:5:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;640:96:3:-;693:7;719:10;712:17;;640:96;:::o;3312:484:1:-;3392:22;3400:4;3406:7;3392;:22::i;:::-;3387:403;;3575:41;3603:7;3575:41;;3613:2;3575:19;:41::i;:::-;3687:38;3715:4;3707:13;;3722:2;3687:19;:38::i;:::-;3482:265;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3430:349;;;;;;;;;;;:::i;:::-;;;;;;;;3387:403;3312:484;;:::o;6822:233::-;6905:22;6913:4;6919:7;6905;:22::i;:::-;6900:149;;6975:4;6943:6;:12;6950:4;6943:12;;;;;;;;;;;:20;;:29;6964:7;6943:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7025:12;:10;:12::i;:::-;6998:40;;7016:7;6998:40;;7010:4;6998:40;;;;;;;;;;6900:149;6822:233;;:::o;7180:234::-;7263:22;7271:4;7277:7;7263;:22::i;:::-;7259:149;;;7333:5;7301:6;:12;7308:4;7301:12;;;;;;;;;;;:20;;:29;7322:7;7301:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7384:12;:10;:12::i;:::-;7357:40;;7375:7;7357:40;;7369:4;7357:40;;;;;;;;;;7259:149;7180:234;;:::o;6218:110::-;6296:25;6307:4;6313:7;6296:10;:25::i;:::-;6218:110;;:::o;1588:441:4:-;1663:13;1688:19;1733:1;1724:6;1720:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1710:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:47;;1745:15;:6;1752:1;1745:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1770;:6;1777:1;1770:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1800:9;1825:1;1816:6;1812:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1800:26;;1795:132;1832:1;1828;:5;1795:132;;;1866:12;1887:3;1879:5;:11;1866:25;;;;;;;:::i;:::-;;;;;1854:6;1861:1;1854:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1915:1;1905:11;;;;;1835:3;;;;:::i;:::-;;;1795:132;;;;1953:1;1944:5;:10;1936:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2015:6;2001:21;;;1588:441;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:8:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:77::-;2246:7;2275:5;2264:16;;2209:77;;;:::o;2292:122::-;2365:24;2383:5;2365:24;:::i;:::-;2358:5;2355:35;2345:63;;2404:1;2401;2394:12;2345:63;2292:122;:::o;2420:139::-;2466:5;2504:6;2491:20;2482:29;;2520:33;2547:5;2520:33;:::i;:::-;2420:139;;;;:::o;2565:329::-;2624:6;2673:2;2661:9;2652:7;2648:23;2644:32;2641:119;;;2679:79;;:::i;:::-;2641:119;2799:1;2824:53;2869:7;2860:6;2849:9;2845:22;2824:53;:::i;:::-;2814:63;;2770:117;2565:329;;;;:::o;2900:118::-;2987:24;3005:5;2987:24;:::i;:::-;2982:3;2975:37;2900:118;;:::o;3024:222::-;3117:4;3155:2;3144:9;3140:18;3132:26;;3168:71;3236:1;3225:9;3221:17;3212:6;3168:71;:::i;:::-;3024:222;;;;:::o;3252:126::-;3289:7;3329:42;3322:5;3318:54;3307:65;;3252:126;;;:::o;3384:96::-;3421:7;3450:24;3468:5;3450:24;:::i;:::-;3439:35;;3384:96;;;:::o;3486:122::-;3559:24;3577:5;3559:24;:::i;:::-;3552:5;3549:35;3539:63;;3598:1;3595;3588:12;3539:63;3486:122;:::o;3614:139::-;3660:5;3698:6;3685:20;3676:29;;3714:33;3741:5;3714:33;:::i;:::-;3614:139;;;;:::o;3759:474::-;3827:6;3835;3884:2;3872:9;3863:7;3859:23;3855:32;3852:119;;;3890:79;;:::i;:::-;3852:119;4010:1;4035:53;4080:7;4071:6;4060:9;4056:22;4035:53;:::i;:::-;4025:63;;3981:117;4137:2;4163:53;4208:7;4199:6;4188:9;4184:22;4163:53;:::i;:::-;4153:63;;4108:118;3759:474;;;;;:::o;4239:118::-;4326:24;4344:5;4326:24;:::i;:::-;4321:3;4314:37;4239:118;;:::o;4363:222::-;4456:4;4494:2;4483:9;4479:18;4471:26;;4507:71;4575:1;4564:9;4560:17;4551:6;4507:71;:::i;:::-;4363:222;;;;:::o;4591:108::-;4668:24;4686:5;4668:24;:::i;:::-;4663:3;4656:37;4591:108;;:::o;4705:::-;4782:24;4800:5;4782:24;:::i;:::-;4777:3;4770:37;4705:108;;:::o;4819:99::-;4871:6;4905:5;4899:12;4889:22;;4819:99;;;:::o;4924:159::-;4998:11;5032:6;5027:3;5020:19;5072:4;5067:3;5063:14;5048:29;;4924:159;;;;:::o;5089:307::-;5157:1;5167:113;5181:6;5178:1;5175:13;5167:113;;;5266:1;5261:3;5257:11;5251:18;5247:1;5242:3;5238:11;5231:39;5203:2;5200:1;5196:10;5191:15;;5167:113;;;5298:6;5295:1;5292:13;5289:101;;;5378:1;5369:6;5364:3;5360:16;5353:27;5289:101;5138:258;5089:307;;;:::o;5402:102::-;5443:6;5494:2;5490:7;5485:2;5478:5;5474:14;5470:28;5460:38;;5402:102;;;:::o;5510:344::-;5588:3;5616:39;5649:5;5616:39;:::i;:::-;5671:61;5725:6;5720:3;5671:61;:::i;:::-;5664:68;;5741:52;5786:6;5781:3;5774:4;5767:5;5763:16;5741:52;:::i;:::-;5818:29;5840:6;5818:29;:::i;:::-;5813:3;5809:39;5802:46;;5592:262;5510:344;;;;:::o;5912:1281::-;6021:3;6057:4;6052:3;6048:14;6145:4;6138:5;6134:16;6128:23;6164:63;6221:4;6216:3;6212:14;6198:12;6164:63;:::i;:::-;6072:165;6323:4;6316:5;6312:16;6306:23;6342:63;6399:4;6394:3;6390:14;6376:12;6342:63;:::i;:::-;6247:168;6500:4;6493:5;6489:16;6483:23;6553:3;6547:4;6543:14;6536:4;6531:3;6527:14;6520:38;6579:73;6647:4;6633:12;6579:73;:::i;:::-;6571:81;;6425:238;6752:4;6745:5;6741:16;6735:23;6805:3;6799:4;6795:14;6788:4;6783:3;6779:14;6772:38;6831:73;6899:4;6885:12;6831:73;:::i;:::-;6823:81;;6673:242;7003:4;6996:5;6992:16;6986:23;7056:3;7050:4;7046:14;7039:4;7034:3;7030:14;7023:38;7082:73;7150:4;7136:12;7082:73;:::i;:::-;7074:81;;6925:241;7183:4;7176:11;;6026:1167;5912:1281;;;;:::o;7199:353::-;7332:4;7370:2;7359:9;7355:18;7347:26;;7419:9;7413:4;7409:20;7405:1;7394:9;7390:17;7383:47;7447:98;7540:4;7531:6;7447:98;:::i;:::-;7439:106;;7199:353;;;;:::o;7558:117::-;7667:1;7664;7657:12;7681:117;7790:1;7787;7780:12;7804:117;7913:1;7910;7903:12;7944:568;8017:8;8027:6;8077:3;8070:4;8062:6;8058:17;8054:27;8044:122;;8085:79;;:::i;:::-;8044:122;8198:6;8185:20;8175:30;;8228:18;8220:6;8217:30;8214:117;;;8250:79;;:::i;:::-;8214:117;8364:4;8356:6;8352:17;8340:29;;8418:3;8410:4;8402:6;8398:17;8388:8;8384:32;8381:41;8378:128;;;8425:79;;:::i;:::-;8378:128;7944:568;;;;;:::o;8518:704::-;8613:6;8621;8629;8678:2;8666:9;8657:7;8653:23;8649:32;8646:119;;;8684:79;;:::i;:::-;8646:119;8804:1;8829:53;8874:7;8865:6;8854:9;8850:22;8829:53;:::i;:::-;8819:63;;8775:117;8959:2;8948:9;8944:18;8931:32;8990:18;8982:6;8979:30;8976:117;;;9012:79;;:::i;:::-;8976:117;9125:80;9197:7;9188:6;9177:9;9173:22;9125:80;:::i;:::-;9107:98;;;;8902:313;8518:704;;;;;:::o;9228:117::-;9337:1;9334;9327:12;9351:180;9399:77;9396:1;9389:88;9496:4;9493:1;9486:15;9520:4;9517:1;9510:15;9537:281;9620:27;9642:4;9620:27;:::i;:::-;9612:6;9608:40;9750:6;9738:10;9735:22;9714:18;9702:10;9699:34;9696:62;9693:88;;;9761:18;;:::i;:::-;9693:88;9801:10;9797:2;9790:22;9580:238;9537:281;;:::o;9824:129::-;9858:6;9885:20;;:::i;:::-;9875:30;;9914:33;9942:4;9934:6;9914:33;:::i;:::-;9824:129;;;:::o;9959:308::-;10021:4;10111:18;10103:6;10100:30;10097:56;;;10133:18;;:::i;:::-;10097:56;10171:29;10193:6;10171:29;:::i;:::-;10163:37;;10255:4;10249;10245:15;10237:23;;9959:308;;;:::o;10273:154::-;10357:6;10352:3;10347;10334:30;10419:1;10410:6;10405:3;10401:16;10394:27;10273:154;;;:::o;10433:412::-;10511:5;10536:66;10552:49;10594:6;10552:49;:::i;:::-;10536:66;:::i;:::-;10527:75;;10625:6;10618:5;10611:21;10663:4;10656:5;10652:16;10701:3;10692:6;10687:3;10683:16;10680:25;10677:112;;;10708:79;;:::i;:::-;10677:112;10798:41;10832:6;10827:3;10822;10798:41;:::i;:::-;10517:328;10433:412;;;;;:::o;10865:340::-;10921:5;10970:3;10963:4;10955:6;10951:17;10947:27;10937:122;;10978:79;;:::i;:::-;10937:122;11095:6;11082:20;11120:79;11195:3;11187:6;11180:4;11172:6;11168:17;11120:79;:::i;:::-;11111:88;;10927:278;10865:340;;;;:::o;11211:1305::-;11327:6;11335;11343;11351;11400:3;11388:9;11379:7;11375:23;11371:33;11368:120;;;11407:79;;:::i;:::-;11368:120;11527:1;11552:53;11597:7;11588:6;11577:9;11573:22;11552:53;:::i;:::-;11542:63;;11498:117;11682:2;11671:9;11667:18;11654:32;11713:18;11705:6;11702:30;11699:117;;;11735:79;;:::i;:::-;11699:117;11840:63;11895:7;11886:6;11875:9;11871:22;11840:63;:::i;:::-;11830:73;;11625:288;11980:2;11969:9;11965:18;11952:32;12011:18;12003:6;12000:30;11997:117;;;12033:79;;:::i;:::-;11997:117;12138:63;12193:7;12184:6;12173:9;12169:22;12138:63;:::i;:::-;12128:73;;11923:288;12278:2;12267:9;12263:18;12250:32;12309:18;12301:6;12298:30;12295:117;;;12331:79;;:::i;:::-;12295:117;12436:63;12491:7;12482:6;12471:9;12467:22;12436:63;:::i;:::-;12426:73;;12221:288;11211:1305;;;;;;;:::o;12522:474::-;12590:6;12598;12647:2;12635:9;12626:7;12622:23;12618:32;12615:119;;;12653:79;;:::i;:::-;12615:119;12773:1;12798:53;12843:7;12834:6;12823:9;12819:22;12798:53;:::i;:::-;12788:63;;12744:117;12900:2;12926:53;12971:7;12962:6;12951:9;12947:22;12926:53;:::i;:::-;12916:63;;12871:118;12522:474;;;;;:::o;13002:1159::-;13109:6;13117;13125;13174:2;13162:9;13153:7;13149:23;13145:32;13142:119;;;13180:79;;:::i;:::-;13142:119;13328:1;13317:9;13313:17;13300:31;13358:18;13350:6;13347:30;13344:117;;;13380:79;;:::i;:::-;13344:117;13485:63;13540:7;13531:6;13520:9;13516:22;13485:63;:::i;:::-;13475:73;;13271:287;13625:2;13614:9;13610:18;13597:32;13656:18;13648:6;13645:30;13642:117;;;13678:79;;:::i;:::-;13642:117;13783:63;13838:7;13829:6;13818:9;13814:22;13783:63;:::i;:::-;13773:73;;13568:288;13923:2;13912:9;13908:18;13895:32;13954:18;13946:6;13943:30;13940:117;;;13976:79;;:::i;:::-;13940:117;14081:63;14136:7;14127:6;14116:9;14112:22;14081:63;:::i;:::-;14071:73;;13866:288;13002:1159;;;;;:::o;14167:169::-;14251:11;14285:6;14280:3;14273:19;14325:4;14320:3;14316:14;14301:29;;14167:169;;;;:::o;14342:166::-;14482:18;14478:1;14470:6;14466:14;14459:42;14342:166;:::o;14514:366::-;14656:3;14677:67;14741:2;14736:3;14677:67;:::i;:::-;14670:74;;14753:93;14842:3;14753:93;:::i;:::-;14871:2;14866:3;14862:12;14855:19;;14514:366;;;:::o;14886:419::-;15052:4;15090:2;15079:9;15075:18;15067:26;;15139:9;15133:4;15129:20;15125:1;15114:9;15110:17;15103:47;15167:131;15293:4;15167:131;:::i;:::-;15159:139;;14886:419;;;:::o;15311:234::-;15451:34;15447:1;15439:6;15435:14;15428:58;15520:17;15515:2;15507:6;15503:15;15496:42;15311:234;:::o;15551:366::-;15693:3;15714:67;15778:2;15773:3;15714:67;:::i;:::-;15707:74;;15790:93;15879:3;15790:93;:::i;:::-;15908:2;15903:3;15899:12;15892:19;;15551:366;;;:::o;15923:419::-;16089:4;16127:2;16116:9;16112:18;16104:26;;16176:9;16170:4;16166:20;16162:1;16151:9;16147:17;16140:47;16204:131;16330:4;16204:131;:::i;:::-;16196:139;;15923:419;;;:::o;16348:167::-;16488:19;16484:1;16476:6;16472:14;16465:43;16348:167;:::o;16521:366::-;16663:3;16684:67;16748:2;16743:3;16684:67;:::i;:::-;16677:74;;16760:93;16849:3;16760:93;:::i;:::-;16878:2;16873:3;16869:12;16862:19;;16521:366;;;:::o;16893:419::-;17059:4;17097:2;17086:9;17082:18;17074:26;;17146:9;17140:4;17136:20;17132:1;17121:9;17117:17;17110:47;17174:131;17300:4;17174:131;:::i;:::-;17166:139;;16893:419;;;:::o;17318:180::-;17366:77;17363:1;17356:88;17463:4;17460:1;17453:15;17487:4;17484:1;17477:15;17504:320;17548:6;17585:1;17579:4;17575:12;17565:22;;17632:1;17626:4;17622:12;17653:18;17643:81;;17709:4;17701:6;17697:17;17687:27;;17643:81;17771:2;17763:6;17760:14;17740:18;17737:38;17734:84;;;17790:18;;:::i;:::-;17734:84;17555:269;17504:320;;;:::o;17830:233::-;17970:34;17966:1;17958:6;17954:14;17947:58;18039:16;18034:2;18026:6;18022:15;18015:41;17830:233;:::o;18069:366::-;18211:3;18232:67;18296:2;18291:3;18232:67;:::i;:::-;18225:74;;18308:93;18397:3;18308:93;:::i;:::-;18426:2;18421:3;18417:12;18410:19;;18069:366;;;:::o;18441:419::-;18607:4;18645:2;18634:9;18630:18;18622:26;;18694:9;18688:4;18684:20;18680:1;18669:9;18665:17;18658:47;18722:131;18848:4;18722:131;:::i;:::-;18714:139;;18441:419;;;:::o;18866:180::-;18914:77;18911:1;18904:88;19011:4;19008:1;19001:15;19035:4;19032:1;19025:15;19052:329;19111:6;19160:2;19148:9;19139:7;19135:23;19131:32;19128:119;;;19166:79;;:::i;:::-;19128:119;19286:1;19311:53;19356:7;19347:6;19336:9;19332:22;19311:53;:::i;:::-;19301:63;;19257:117;19052:329;;;;:::o;19387:180::-;19435:77;19432:1;19425:88;19532:4;19529:1;19522:15;19556:4;19553:1;19546:15;19573:233;19612:3;19635:24;19653:5;19635:24;:::i;:::-;19626:33;;19681:66;19674:5;19671:77;19668:103;;;19751:18;;:::i;:::-;19668:103;19798:1;19791:5;19787:13;19780:20;;19573:233;;;:::o;19812:118::-;19899:24;19917:5;19899:24;:::i;:::-;19894:3;19887:37;19812:118;;:::o;19936:364::-;20024:3;20052:39;20085:5;20052:39;:::i;:::-;20107:71;20171:6;20166:3;20107:71;:::i;:::-;20100:78;;20187:52;20232:6;20227:3;20220:4;20213:5;20209:16;20187:52;:::i;:::-;20264:29;20286:6;20264:29;:::i;:::-;20259:3;20255:39;20248:46;;20028:272;19936:364;;;;:::o;20306:937::-;20571:4;20609:3;20598:9;20594:19;20586:27;;20623:71;20691:1;20680:9;20676:17;20667:6;20623:71;:::i;:::-;20704:72;20772:2;20761:9;20757:18;20748:6;20704:72;:::i;:::-;20823:9;20817:4;20813:20;20808:2;20797:9;20793:18;20786:48;20851:78;20924:4;20915:6;20851:78;:::i;:::-;20843:86;;20976:9;20970:4;20966:20;20961:2;20950:9;20946:18;20939:48;21004:78;21077:4;21068:6;21004:78;:::i;:::-;20996:86;;21130:9;21124:4;21120:20;21114:3;21103:9;21099:19;21092:49;21158:78;21231:4;21222:6;21158:78;:::i;:::-;21150:86;;20306:937;;;;;;;;:::o;21249:141::-;21298:4;21321:3;21313:11;;21344:3;21341:1;21334:14;21378:4;21375:1;21365:18;21357:26;;21249:141;;;:::o;21420:802::-;21505:3;21542:5;21536:12;21571:36;21597:9;21571:36;:::i;:::-;21623:71;21687:6;21682:3;21623:71;:::i;:::-;21616:78;;21725:1;21714:9;21710:17;21741:1;21736:135;;;;21885:1;21880:336;;;;21703:513;;21736:135;21820:4;21816:9;21805;21801:25;21796:3;21789:38;21856:4;21851:3;21847:14;21840:21;;21736:135;;21880:336;21947:38;21979:5;21947:38;:::i;:::-;22007:1;22021:154;22035:6;22032:1;22029:13;22021:154;;;22109:7;22103:14;22099:1;22094:3;22090:11;22083:35;22159:1;22150:7;22146:15;22135:26;;22057:4;22054:1;22050:12;22045:17;;22021:154;;;22204:1;22199:3;22195:11;22188:18;;21887:329;;21703:513;;21509:713;;21420:802;;;;:::o;22228:919::-;22484:4;22522:3;22511:9;22507:19;22499:27;;22536:71;22604:1;22593:9;22589:17;22580:6;22536:71;:::i;:::-;22617:72;22685:2;22674:9;22670:18;22661:6;22617:72;:::i;:::-;22736:9;22730:4;22726:20;22721:2;22710:9;22706:18;22699:48;22764:75;22834:4;22825:6;22764:75;:::i;:::-;22756:83;;22886:9;22880:4;22876:20;22871:2;22860:9;22856:18;22849:48;22914:75;22984:4;22975:6;22914:75;:::i;:::-;22906:83;;23037:9;23031:4;23027:20;23021:3;23010:9;23006:19;22999:49;23065:75;23135:4;23126:6;23065:75;:::i;:::-;23057:83;;22228:919;;;;;;;;:::o;23153:305::-;23193:3;23212:20;23230:1;23212:20;:::i;:::-;23207:25;;23246:20;23264:1;23246:20;:::i;:::-;23241:25;;23400:1;23332:66;23328:74;23325:1;23322:81;23319:107;;;23406:18;;:::i;:::-;23319:107;23450:1;23447;23443:9;23436:16;;23153:305;;;;:::o;23464:148::-;23566:11;23603:3;23588:18;;23464:148;;;;:::o;23618:173::-;23758:25;23754:1;23746:6;23742:14;23735:49;23618:173;:::o;23797:402::-;23957:3;23978:85;24060:2;24055:3;23978:85;:::i;:::-;23971:92;;24072:93;24161:3;24072:93;:::i;:::-;24190:2;24185:3;24181:12;24174:19;;23797:402;;;:::o;24205:377::-;24311:3;24339:39;24372:5;24339:39;:::i;:::-;24394:89;24476:6;24471:3;24394:89;:::i;:::-;24387:96;;24492:52;24537:6;24532:3;24525:4;24518:5;24514:16;24492:52;:::i;:::-;24569:6;24564:3;24560:16;24553:23;;24315:267;24205:377;;;;:::o;24588:167::-;24728:19;24724:1;24716:6;24712:14;24705:43;24588:167;:::o;24761:402::-;24921:3;24942:85;25024:2;25019:3;24942:85;:::i;:::-;24935:92;;25036:93;25125:3;25036:93;:::i;:::-;25154:2;25149:3;25145:12;25138:19;;24761:402;;;:::o;25169:967::-;25551:3;25573:148;25717:3;25573:148;:::i;:::-;25566:155;;25738:95;25829:3;25820:6;25738:95;:::i;:::-;25731:102;;25850:148;25994:3;25850:148;:::i;:::-;25843:155;;26015:95;26106:3;26097:6;26015:95;:::i;:::-;26008:102;;26127:3;26120:10;;25169:967;;;;;:::o;26142:313::-;26255:4;26293:2;26282:9;26278:18;26270:26;;26342:9;26336:4;26332:20;26328:1;26317:9;26313:17;26306:47;26370:78;26443:4;26434:6;26370:78;:::i;:::-;26362:86;;26142:313;;;;:::o;26461:348::-;26501:7;26524:20;26542:1;26524:20;:::i;:::-;26519:25;;26558:20;26576:1;26558:20;:::i;:::-;26553:25;;26746:1;26678:66;26674:74;26671:1;26668:81;26663:1;26656:9;26649:17;26645:105;26642:131;;;26753:18;;:::i;:::-;26642:131;26801:1;26798;26794:9;26783:20;;26461:348;;;;:::o;26815:171::-;26854:3;26877:24;26895:5;26877:24;:::i;:::-;26868:33;;26923:4;26916:5;26913:15;26910:41;;;26931:18;;:::i;:::-;26910:41;26978:1;26971:5;26967:13;26960:20;;26815:171;;;:::o;26992:182::-;27132:34;27128:1;27120:6;27116:14;27109:58;26992:182;:::o;27180:366::-;27322:3;27343:67;27407:2;27402:3;27343:67;:::i;:::-;27336:74;;27419:93;27508:3;27419:93;:::i;:::-;27537:2;27532:3;27528:12;27521:19;;27180:366;;;:::o;27552:419::-;27718:4;27756:2;27745:9;27741:18;27733:26;;27805:9;27799:4;27795:20;27791:1;27780:9;27776:17;27769:47;27833:131;27959:4;27833:131;:::i;:::-;27825:139;;27552:419;;;:::o" - }, - "methodIdentifiers": { - "ADMIN_ROLE()": "75b238fc", - "DEFAULT_ADMIN_ROLE()": "a217fddf", - "amountToPay()": "7ba13680", - "appID()": "f9a6cbae", - "deleteApp(uint256)": "6df693d3", - "getDAppData(uint256)": "887e4b86", - "getRoleAdmin(bytes32)": "248a9ca3", - "grantRole(bytes32,address)": "2f2ff15d", - "hasRole(bytes32,address)": "91d14854", - "initialize(uint256,address[])": "a920b78c", - "releaseDApp(uint256)": "5cadd4a9", - "renounceRole(bytes32,address)": "36568abe", - "revokeRole(bytes32,address)": "d547741f", - "submitDApp(string,string,string)": "e73173a4", - "supportsInterface(bytes4)": "01ffc9a7", - "transferAppOwner(address,uint256)": "e58cdd90", - "updateDApp(uint256,string,string,string)": "ab444f28", - "verifyDApp(uint256)": "1805d79f" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"}],\"name\":\"DeleteApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"NewApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"}],\"name\":\"ReleaseApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"UpdateApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"}],\"name\":\"VerifyApp\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"amountToPay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"appID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"deleteApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"getDAppData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"internalType\":\"struct DAppStore.App\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountToPay\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"releaseDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"submitDApp\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"transferAppOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"updateDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"verifyDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DAppStore.sol\":\"DAppStore\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x6287586f5e4a103c89d4dda41406136cdf283cc625bd1ebfdf1468aae5bfe449\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30e2e913292e86a9bce50d51882b23ef57ae4c811003ec96cf39b1781f68b202\",\"dweb:/ipfs/QmUXqjyiAHbEMJ4zLfaduWYuVwp1HozqVhtChe9VfdpjoV\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xb9a137b317dc4806805f2259686186c0c053c32d80fe9c15ecdbf2eb1cf52849\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8910762bea89696c6dc68a63be98c6ddd597955f8a29418661cc99d0ce090663\",\"dweb:/ipfs/Qmed14MXXFdNYE22bCuVy5XVAMKUo1DncY8BF8VkyrvXmh\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/DAppStore.sol\":{\"keccak256\":\"0xe6a5d320706c45f760f70f19cec3441b12a9b779b2e0d1af585f75da3591131c\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://2b573b5bc1d04da6da0784a23cd85bb7bff7af5ebd5451cb0bc7cdb4139825bc\",\"dweb:/ipfs/Qmear9zr4zDhXVMnLTRNnmtMi5NPViBSXD5GdCcYUubUUb\"]}},\"version\":1}" - } - } - }, - "sources": { - "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "exportedSymbols": { - "Initializable": [ - 45 - ] - }, - "id": 46, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "98:23:0" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "Initializable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 2, - "nodeType": "StructuredDocumentation", - "src": "123:1490:0", - "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To initialize the implementation contract, you can either invoke the\n initializer manually, or you can include a constructor to automatically mark it as initialized when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() initializer {}\n ```\n ====" - }, - "fullyImplemented": true, - "id": 45, - "linearizedBaseContracts": [ - 45 - ], - "name": "Initializable", - "nameLocation": "1632:13:0", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "documentation": { - "id": 3, - "nodeType": "StructuredDocumentation", - "src": "1652:73:0", - "text": " @dev Indicates that the contract has been initialized." - }, - "id": 5, - "mutability": "mutable", - "name": "_initialized", - "nameLocation": "1743:12:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "1730:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1730:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 6, - "nodeType": "StructuredDocumentation", - "src": "1762:91:0", - "text": " @dev Indicates that the contract is in the process of being initialized." - }, - "id": 8, - "mutability": "mutable", - "name": "_initializing", - "nameLocation": "1871:13:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "1858:26:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1858:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "private" - }, - { - "body": { - "id": 43, - "nodeType": "Block", - "src": "2012:348:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 15, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2030:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "id": 14, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2047:13:0", - "subExpression": { - "id": 13, - "name": "_initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "2048:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2030:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 16, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2062:48:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", - "typeString": "literal_string \"Initializable: contract is already initialized\"" - }, - "value": "Initializable: contract is already initialized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", - "typeString": "literal_string \"Initializable: contract is already initialized\"" - } - ], - "id": 11, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2022:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 17, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2022:89:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18, - "nodeType": "ExpressionStatement", - "src": "2022:89:0" - }, - { - "assignments": [ - 20 - ], - "declarations": [ - { - "constant": false, - "id": 20, - "mutability": "mutable", - "name": "isTopLevelCall", - "nameLocation": "2127:14:0", - "nodeType": "VariableDeclaration", - "scope": 43, - "src": "2122:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2122:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 23, - "initialValue": { - "id": 22, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2144:14:0", - "subExpression": { - "id": 21, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2145:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2122:36:0" - }, - { - "condition": { - "id": 24, - "name": "isTopLevelCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "2172:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34, - "nodeType": "IfStatement", - "src": "2168:98:0", - "trueBody": { - "id": 33, - "nodeType": "Block", - "src": "2188:78:0", - "statements": [ - { - "expression": { - "id": 27, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 25, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2202:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 26, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2218:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2202:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 28, - "nodeType": "ExpressionStatement", - "src": "2202:20:0" - }, - { - "expression": { - "id": 31, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 29, - "name": "_initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "2236:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2251:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2236:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32, - "nodeType": "ExpressionStatement", - "src": "2236:19:0" - } - ] - } - }, - { - "id": 35, - "nodeType": "PlaceholderStatement", - "src": "2276:1:0" - }, - { - "condition": { - "id": 36, - "name": "isTopLevelCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "2292:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 42, - "nodeType": "IfStatement", - "src": "2288:66:0", - "trueBody": { - "id": 41, - "nodeType": "Block", - "src": "2308:46:0", - "statements": [ - { - "expression": { - "id": 39, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 37, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2322:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 38, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2338:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2322:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 40, - "nodeType": "ExpressionStatement", - "src": "2322:21:0" - } - ] - } - } - ] - }, - "documentation": { - "id": 9, - "nodeType": "StructuredDocumentation", - "src": "1891:93:0", - "text": " @dev Modifier to protect an initializer function from being invoked twice." - }, - "id": 44, - "name": "initializer", - "nameLocation": "1998:11:0", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 10, - "nodeType": "ParameterList", - "parameters": [], - "src": "2009:2:0" - }, - "src": "1989:371:0", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 46, - "src": "1614:748:0", - "usedErrors": [] - } - ], - "src": "98:2265:0" - }, - "id": 0 - }, - "@openzeppelin/contracts/access/AccessControl.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", - "exportedSymbols": { - "AccessControl": [ - 354 - ], - "Context": [ - 449 - ], - "ERC165": [ - 676 - ], - "IAccessControl": [ - 427 - ], - "IERC165": [ - 688 - ], - "Strings": [ - 652 - ] - }, - "id": 355, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 47, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "93:23:1" - }, - { - "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", - "file": "./IAccessControl.sol", - "id": 48, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 355, - "sourceUnit": 428, - "src": "118:30:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "../utils/Context.sol", - "id": 49, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 355, - "sourceUnit": 450, - "src": "149:30:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", - "file": "../utils/Strings.sol", - "id": 50, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 355, - "sourceUnit": 653, - "src": "180:30:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "file": "../utils/introspection/ERC165.sol", - "id": 51, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 355, - "sourceUnit": 677, - "src": "211:43:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 53, - "name": "Context", - "nodeType": "IdentifierPath", - "referencedDeclaration": 449, - "src": "1826:7:1" - }, - "id": 54, - "nodeType": "InheritanceSpecifier", - "src": "1826:7:1" - }, - { - "baseName": { - "id": 55, - "name": "IAccessControl", - "nodeType": "IdentifierPath", - "referencedDeclaration": 427, - "src": "1835:14:1" - }, - "id": 56, - "nodeType": "InheritanceSpecifier", - "src": "1835:14:1" - }, - { - "baseName": { - "id": 57, - "name": "ERC165", - "nodeType": "IdentifierPath", - "referencedDeclaration": 676, - "src": "1851:6:1" - }, - "id": 58, - "nodeType": "InheritanceSpecifier", - "src": "1851:6:1" - } - ], - "canonicalName": "AccessControl", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 52, - "nodeType": "StructuredDocumentation", - "src": "256:1534:1", - "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it." - }, - "fullyImplemented": true, - "id": 354, - "linearizedBaseContracts": [ - 354, - 676, - 688, - 427, - 449 - ], - "name": "AccessControl", - "nameLocation": "1809:13:1", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "AccessControl.RoleData", - "id": 65, - "members": [ - { - "constant": false, - "id": 62, - "mutability": "mutable", - "name": "members", - "nameLocation": "1915:7:1", - "nodeType": "VariableDeclaration", - "scope": 65, - "src": "1890:32:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 61, - "keyType": { - "id": 59, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1890:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 60, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1909:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64, - "mutability": "mutable", - "name": "adminRole", - "nameLocation": "1940:9:1", - "nodeType": "VariableDeclaration", - "scope": 65, - "src": "1932:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 63, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1932:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "name": "RoleData", - "nameLocation": "1871:8:1", - "nodeType": "StructDefinition", - "scope": 354, - "src": "1864:92:1", - "visibility": "public" - }, - { - "constant": false, - "id": 70, - "mutability": "mutable", - "name": "_roles", - "nameLocation": "1999:6:1", - "nodeType": "VariableDeclaration", - "scope": 354, - "src": "1962:43:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", - "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" - }, - "typeName": { - "id": 69, - "keyType": { - "id": 66, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1962:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", - "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" - }, - "valueType": { - "id": 68, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 67, - "name": "RoleData", - "nodeType": "IdentifierPath", - "referencedDeclaration": 65, - "src": "1981:8:1" - }, - "referencedDeclaration": 65, - "src": "1981:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$65_storage_ptr", - "typeString": "struct AccessControl.RoleData" - } - } - }, - "visibility": "private" - }, - { - "constant": true, - "functionSelector": "a217fddf", - "id": 73, - "mutability": "constant", - "name": "DEFAULT_ADMIN_ROLE", - "nameLocation": "2036:18:1", - "nodeType": "VariableDeclaration", - "scope": 354, - "src": "2012:49:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 71, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2012:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "30783030", - "id": 72, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2057:4:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x00" - }, - "visibility": "public" - }, - { - "body": { - "id": 85, - "nodeType": "Block", - "src": "2480:58:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 79, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76, - "src": "2501:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 80, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 439, - "src": "2507:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 81, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2507:12:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 78, - "name": "_checkRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "2490:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address) view" - } - }, - "id": 82, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2490:30:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 83, - "nodeType": "ExpressionStatement", - "src": "2490:30:1" - }, - { - "id": 84, - "nodeType": "PlaceholderStatement", - "src": "2530:1:1" - } - ] - }, - "documentation": { - "id": 74, - "nodeType": "StructuredDocumentation", - "src": "2068:375:1", - "text": " @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._" - }, - "id": 86, - "name": "onlyRole", - "nameLocation": "2457:8:1", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 77, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76, - "mutability": "mutable", - "name": "role", - "nameLocation": "2474:4:1", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2466:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 75, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2465:14:1" - }, - "src": "2448:90:1", - "virtual": false, - "visibility": "internal" - }, - { - "baseFunctions": [ - 675 - ], - "body": { - "id": 107, - "nodeType": "Block", - "src": "2696:111:1", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 95, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "2713:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 97, - "name": "IAccessControl", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "2733:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IAccessControl_$427_$", - "typeString": "type(contract IAccessControl)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_IAccessControl_$427_$", - "typeString": "type(contract IAccessControl)" - } - ], - "id": 96, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "2728:4:1", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 98, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2728:20:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControl_$427", - "typeString": "type(contract IAccessControl)" - } - }, - "id": 99, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "interfaceId", - "nodeType": "MemberAccess", - "src": "2728:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "2713:47:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 103, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "2788:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "id": 101, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -25, - "src": "2764:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_AccessControl_$354_$", - "typeString": "type(contract super AccessControl)" - } - }, - "id": 102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "supportsInterface", - "nodeType": "MemberAccess", - "referencedDeclaration": 675, - "src": "2764:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", - "typeString": "function (bytes4) view returns (bool)" - } - }, - "id": 104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2764:36:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2713:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 94, - "id": 106, - "nodeType": "Return", - "src": "2706:94:1" - } - ] - }, - "documentation": { - "id": 87, - "nodeType": "StructuredDocumentation", - "src": "2544:56:1", - "text": " @dev See {IERC165-supportsInterface}." - }, - "functionSelector": "01ffc9a7", - "id": 108, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "2614:17:1", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 91, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2672:8:1" - }, - "parameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 89, - "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "2639:11:1", - "nodeType": "VariableDeclaration", - "scope": 108, - "src": "2632:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 88, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2632:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "2631:20:1" - }, - "returnParameters": { - "id": 94, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 108, - "src": "2690:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 92, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2690:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2689:6:1" - }, - "scope": 354, - "src": "2605:202:1", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 394 - ], - "body": { - "id": 126, - "nodeType": "Block", - "src": "2978:53:1", - "statements": [ - { - "expression": { - "baseExpression": { - "expression": { - "baseExpression": { - "id": 119, - "name": "_roles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 70, - "src": "2995:6:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", - "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" - } - }, - "id": 121, - "indexExpression": { - "id": 120, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "3002:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2995:12:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$65_storage", - "typeString": "struct AccessControl.RoleData storage ref" - } - }, - "id": 122, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "members", - "nodeType": "MemberAccess", - "referencedDeclaration": 62, - "src": "2995:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 124, - "indexExpression": { - "id": 123, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "3016:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2995:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 118, - "id": 125, - "nodeType": "Return", - "src": "2988:36:1" - } - ] - }, - "documentation": { - "id": 109, - "nodeType": "StructuredDocumentation", - "src": "2813:76:1", - "text": " @dev Returns `true` if `account` has been granted `role`." - }, - "functionSelector": "91d14854", - "id": 127, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hasRole", - "nameLocation": "2903:7:1", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 115, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2954:8:1" - }, - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 111, - "mutability": "mutable", - "name": "role", - "nameLocation": "2919:4:1", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "2911:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 110, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2911:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "mutability": "mutable", - "name": "account", - "nameLocation": "2933:7:1", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "2925:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2925:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2910:31:1" - }, - "returnParameters": { - "id": 118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "2972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 116, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2971:6:1" - }, - "scope": 354, - "src": "2894:137:1", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 169, - "nodeType": "Block", - "src": "3377:419:1", - "statements": [ - { - "condition": { - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3391:23:1", - "subExpression": { - "arguments": [ - { - "id": 136, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "3400:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 137, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "3406:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 135, - "name": "hasRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "3392:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) view returns (bool)" - } - }, - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3392:22:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 168, - "nodeType": "IfStatement", - "src": "3387:403:1", - "trueBody": { - "id": 167, - "nodeType": "Block", - "src": "3416:374:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "hexValue": "416363657373436f6e74726f6c3a206163636f756e7420", - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3524:25:1", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", - "typeString": "literal_string \"AccessControl: account \"" - }, - "value": "AccessControl: account " - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 150, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "3603:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3595:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 148, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "3595:7:1", - "typeDescriptions": {} - } - }, - "id": 151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3595:16:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - }, - { - "hexValue": "3230", - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3613:2:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - }, - { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - } - ], - "expression": { - "id": 146, - "name": "Strings", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 652, - "src": "3575:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Strings_$652_$", - "typeString": "type(library Strings)" - } - }, - "id": 147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toHexString", - "nodeType": "MemberAccess", - "referencedDeclaration": 651, - "src": "3575:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (uint256,uint256) pure returns (string memory)" - } - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3575:41:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "hexValue": "206973206d697373696e6720726f6c6520", - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3642:19:1", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", - "typeString": "literal_string \" is missing role \"" - }, - "value": " is missing role " - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 159, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "3715:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3707:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 157, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3707:7:1", - "typeDescriptions": {} - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3707:13:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "3332", - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3722:2:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "expression": { - "id": 155, - "name": "Strings", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 652, - "src": "3687:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Strings_$652_$", - "typeString": "type(library Strings)" - } - }, - "id": 156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toHexString", - "nodeType": "MemberAccess", - "referencedDeclaration": 651, - "src": "3687:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (uint256,uint256) pure returns (string memory)" - } - }, - "id": 162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3687:38:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", - "typeString": "literal_string \"AccessControl: account \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", - "typeString": "literal_string \" is missing role \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 143, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "3482:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3482:265:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3454:6:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 141, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3454:6:1", - "typeDescriptions": {} - } - }, - "id": 164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3454:311:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 140, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -19, - -19 - ], - "referencedDeclaration": -19, - "src": "3430:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3430:349:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 166, - "nodeType": "ExpressionStatement", - "src": "3430:349:1" - } - ] - } - } - ] - }, - "documentation": { - "id": 128, - "nodeType": "StructuredDocumentation", - "src": "3037:270:1", - "text": " @dev Revert with a standard message if `account` is missing `role`.\n The format of the revert reason is given by the following regular expression:\n /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/" - }, - "id": 170, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkRole", - "nameLocation": "3321:10:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 130, - "mutability": "mutable", - "name": "role", - "nameLocation": "3340:4:1", - "nodeType": "VariableDeclaration", - "scope": 170, - "src": "3332:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 129, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3332:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 132, - "mutability": "mutable", - "name": "account", - "nameLocation": "3354:7:1", - "nodeType": "VariableDeclaration", - "scope": 170, - "src": "3346:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 131, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3346:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3331:31:1" - }, - "returnParameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [], - "src": "3377:0:1" - }, - "scope": 354, - "src": "3312:484:1", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "baseFunctions": [ - 402 - ], - "body": { - "id": 184, - "nodeType": "Block", - "src": "4052:46:1", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 179, - "name": "_roles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 70, - "src": "4069:6:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", - "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" - } - }, - "id": 181, - "indexExpression": { - "id": 180, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 173, - "src": "4076:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4069:12:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$65_storage", - "typeString": "struct AccessControl.RoleData storage ref" - } - }, - "id": 182, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "adminRole", - "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "4069:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 178, - "id": 183, - "nodeType": "Return", - "src": "4062:29:1" - } - ] - }, - "documentation": { - "id": 171, - "nodeType": "StructuredDocumentation", - "src": "3802:170:1", - "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}." - }, - "functionSelector": "248a9ca3", - "id": 185, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getRoleAdmin", - "nameLocation": "3986:12:1", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 175, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4025:8:1" - }, - "parameters": { - "id": 174, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 173, - "mutability": "mutable", - "name": "role", - "nameLocation": "4007:4:1", - "nodeType": "VariableDeclaration", - "scope": 185, - "src": "3999:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 172, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3999:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3998:14:1" - }, - "returnParameters": { - "id": 178, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 177, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 185, - "src": "4043:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 176, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4043:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4042:9:1" - }, - "scope": 354, - "src": "3977:121:1", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 410 - ], - "body": { - "id": 204, - "nodeType": "Block", - "src": "4451:42:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 200, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "4472:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 201, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 190, - "src": "4478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 199, - "name": "_grantRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "4461:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4461:25:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 203, - "nodeType": "ExpressionStatement", - "src": "4461:25:1" - } - ] - }, - "documentation": { - "id": 186, - "nodeType": "StructuredDocumentation", - "src": "4104:239:1", - "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role." - }, - "functionSelector": "2f2ff15d", - "id": 205, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 195, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "4444:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 194, - "name": "getRoleAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "4431:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - } - }, - "id": 196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4431:18:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 197, - "kind": "modifierInvocation", - "modifierName": { - "id": 193, - "name": "onlyRole", - "nodeType": "IdentifierPath", - "referencedDeclaration": 86, - "src": "4422:8:1" - }, - "nodeType": "ModifierInvocation", - "src": "4422:28:1" - } - ], - "name": "grantRole", - "nameLocation": "4357:9:1", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 192, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4413:8:1" - }, - "parameters": { - "id": 191, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 188, - "mutability": "mutable", - "name": "role", - "nameLocation": "4375:4:1", - "nodeType": "VariableDeclaration", - "scope": 205, - "src": "4367:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 187, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4367:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 190, - "mutability": "mutable", - "name": "account", - "nameLocation": "4389:7:1", - "nodeType": "VariableDeclaration", - "scope": 205, - "src": "4381:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 189, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4381:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4366:31:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [], - "src": "4451:0:1" - }, - "scope": 354, - "src": "4348:145:1", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 418 - ], - "body": { - "id": 224, - "nodeType": "Block", - "src": "4831:43:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 220, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "4853:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 221, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 210, - "src": "4859:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 219, - "name": "_revokeRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "4841:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4841:26:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 223, - "nodeType": "ExpressionStatement", - "src": "4841:26:1" - } - ] - }, - "documentation": { - "id": 206, - "nodeType": "StructuredDocumentation", - "src": "4499:223:1", - "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role." - }, - "functionSelector": "d547741f", - "id": 225, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 215, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "4824:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 214, - "name": "getRoleAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "4811:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - } - }, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4811:18:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 217, - "kind": "modifierInvocation", - "modifierName": { - "id": 213, - "name": "onlyRole", - "nodeType": "IdentifierPath", - "referencedDeclaration": 86, - "src": "4802:8:1" - }, - "nodeType": "ModifierInvocation", - "src": "4802:28:1" - } - ], - "name": "revokeRole", - "nameLocation": "4736:10:1", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 212, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4793:8:1" - }, - "parameters": { - "id": 211, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 208, - "mutability": "mutable", - "name": "role", - "nameLocation": "4755:4:1", - "nodeType": "VariableDeclaration", - "scope": 225, - "src": "4747:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 207, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4747:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 210, - "mutability": "mutable", - "name": "account", - "nameLocation": "4769:7:1", - "nodeType": "VariableDeclaration", - "scope": 225, - "src": "4761:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 209, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4746:31:1" - }, - "returnParameters": { - "id": 218, - "nodeType": "ParameterList", - "parameters": [], - "src": "4831:0:1" - }, - "scope": 354, - "src": "4727:147:1", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 426 - ], - "body": { - "id": 247, - "nodeType": "Block", - "src": "5442:137:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 235, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "5460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 236, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 439, - "src": "5471:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5471:12:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5460:23:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66", - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5485:49:1", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", - "typeString": "literal_string \"AccessControl: can only renounce roles for self\"" - }, - "value": "AccessControl: can only renounce roles for self" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", - "typeString": "literal_string \"AccessControl: can only renounce roles for self\"" - } - ], - "id": 234, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5452:83:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 241, - "nodeType": "ExpressionStatement", - "src": "5452:83:1" - }, - { - "expression": { - "arguments": [ - { - "id": 243, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "5558:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 244, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "5564:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 242, - "name": "_revokeRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "5546:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5546:26:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 246, - "nodeType": "ExpressionStatement", - "src": "5546:26:1" - } - ] - }, - "documentation": { - "id": 226, - "nodeType": "StructuredDocumentation", - "src": "4880:480:1", - "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`." - }, - "functionSelector": "36568abe", - "id": 248, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "renounceRole", - "nameLocation": "5374:12:1", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 232, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "5433:8:1" - }, - "parameters": { - "id": 231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 228, - "mutability": "mutable", - "name": "role", - "nameLocation": "5395:4:1", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "5387:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 227, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5387:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "mutability": "mutable", - "name": "account", - "nameLocation": "5409:7:1", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "5401:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5401:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5386:31:1" - }, - "returnParameters": { - "id": 233, - "nodeType": "ParameterList", - "parameters": [], - "src": "5442:0:1" - }, - "scope": 354, - "src": "5365:214:1", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 261, - "nodeType": "Block", - "src": "6286:42:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 257, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "6307:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 258, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "6313:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 256, - "name": "_grantRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "6296:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6296:25:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 260, - "nodeType": "ExpressionStatement", - "src": "6296:25:1" - } - ] - }, - "documentation": { - "id": 249, - "nodeType": "StructuredDocumentation", - "src": "5585:628:1", - "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====\n NOTE: This function is deprecated in favor of {_grantRole}." - }, - "id": 262, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setupRole", - "nameLocation": "6227:10:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "mutability": "mutable", - "name": "role", - "nameLocation": "6246:4:1", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "6238:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 250, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6238:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "mutability": "mutable", - "name": "account", - "nameLocation": "6260:7:1", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "6252:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 252, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6252:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6237:31:1" - }, - "returnParameters": { - "id": 255, - "nodeType": "ParameterList", - "parameters": [], - "src": "6286:0:1" - }, - "scope": 354, - "src": "6218:110:1", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 289, - "nodeType": "Block", - "src": "6526:174:1", - "statements": [ - { - "assignments": [ - 271 - ], - "declarations": [ - { - "constant": false, - "id": 271, - "mutability": "mutable", - "name": "previousAdminRole", - "nameLocation": "6544:17:1", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "6536:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 270, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6536:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 275, - "initialValue": { - "arguments": [ - { - "id": 273, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "6577:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 272, - "name": "getRoleAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "6564:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - } - }, - "id": 274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6564:18:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6536:46:1" - }, - { - "expression": { - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 276, - "name": "_roles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 70, - "src": "6592:6:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", - "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" - } - }, - "id": 278, - "indexExpression": { - "id": 277, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "6599:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6592:12:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$65_storage", - "typeString": "struct AccessControl.RoleData storage ref" - } - }, - "id": 279, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "adminRole", - "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "6592:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 280, - "name": "adminRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 267, - "src": "6617:9:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "6592:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 282, - "nodeType": "ExpressionStatement", - "src": "6592:34:1" - }, - { - "eventCall": { - "arguments": [ - { - "id": 284, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "6658:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 285, - "name": "previousAdminRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 271, - "src": "6664:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 286, - "name": "adminRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 267, - "src": "6683:9:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 283, - "name": "RoleAdminChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "6641:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (bytes32,bytes32,bytes32)" - } - }, - "id": 287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6641:52:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 288, - "nodeType": "EmitStatement", - "src": "6636:57:1" - } - ] - }, - "documentation": { - "id": 263, - "nodeType": "StructuredDocumentation", - "src": "6334:114:1", - "text": " @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event." - }, - "id": 290, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setRoleAdmin", - "nameLocation": "6462:13:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 268, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 265, - "mutability": "mutable", - "name": "role", - "nameLocation": "6484:4:1", - "nodeType": "VariableDeclaration", - "scope": 290, - "src": "6476:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 264, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6476:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 267, - "mutability": "mutable", - "name": "adminRole", - "nameLocation": "6498:9:1", - "nodeType": "VariableDeclaration", - "scope": 290, - "src": "6490:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 266, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6490:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "6475:33:1" - }, - "returnParameters": { - "id": 269, - "nodeType": "ParameterList", - "parameters": [], - "src": "6526:0:1" - }, - "scope": 354, - "src": "6453:247:1", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 321, - "nodeType": "Block", - "src": "6890:165:1", - "statements": [ - { - "condition": { - "id": 302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "6904:23:1", - "subExpression": { - "arguments": [ - { - "id": 299, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "6913:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 300, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "6919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 298, - "name": "hasRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "6905:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) view returns (bool)" - } - }, - "id": 301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6905:22:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 320, - "nodeType": "IfStatement", - "src": "6900:149:1", - "trueBody": { - "id": 319, - "nodeType": "Block", - "src": "6929:120:1", - "statements": [ - { - "expression": { - "id": 310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "expression": { - "baseExpression": { - "id": 303, - "name": "_roles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 70, - "src": "6943:6:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", - "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" - } - }, - "id": 305, - "indexExpression": { - "id": 304, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "6950:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6943:12:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$65_storage", - "typeString": "struct AccessControl.RoleData storage ref" - } - }, - "id": 306, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "members", - "nodeType": "MemberAccess", - "referencedDeclaration": 62, - "src": "6943:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 308, - "indexExpression": { - "id": 307, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "6964:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6943:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6975:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "6943:36:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 311, - "nodeType": "ExpressionStatement", - "src": "6943:36:1" - }, - { - "eventCall": { - "arguments": [ - { - "id": 313, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "7010:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 314, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "7016:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 315, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 439, - "src": "7025:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7025:12:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 312, - "name": "RoleGranted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 375, - "src": "6998:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", - "typeString": "function (bytes32,address,address)" - } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6998:40:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 318, - "nodeType": "EmitStatement", - "src": "6993:45:1" - } - ] - } - } - ] - }, - "documentation": { - "id": 291, - "nodeType": "StructuredDocumentation", - "src": "6706:111:1", - "text": " @dev Grants `role` to `account`.\n Internal function without access restriction." - }, - "id": 322, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_grantRole", - "nameLocation": "6831:10:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 293, - "mutability": "mutable", - "name": "role", - "nameLocation": "6850:4:1", - "nodeType": "VariableDeclaration", - "scope": 322, - "src": "6842:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 292, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6842:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 295, - "mutability": "mutable", - "name": "account", - "nameLocation": "6864:7:1", - "nodeType": "VariableDeclaration", - "scope": 322, - "src": "6856:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6856:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6841:31:1" - }, - "returnParameters": { - "id": 297, - "nodeType": "ParameterList", - "parameters": [], - "src": "6890:0:1" - }, - "scope": 354, - "src": "6822:233:1", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 352, - "nodeType": "Block", - "src": "7249:165:1", - "statements": [ - { - "condition": { - "arguments": [ - { - "id": 331, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "7271:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 332, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 327, - "src": "7277:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 330, - "name": "hasRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "7263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) view returns (bool)" - } - }, - "id": 333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7263:22:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 351, - "nodeType": "IfStatement", - "src": "7259:149:1", - "trueBody": { - "id": 350, - "nodeType": "Block", - "src": "7287:121:1", - "statements": [ - { - "expression": { - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "expression": { - "baseExpression": { - "id": 334, - "name": "_roles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 70, - "src": "7301:6:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", - "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" - } - }, - "id": 336, - "indexExpression": { - "id": 335, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "7308:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7301:12:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$65_storage", - "typeString": "struct AccessControl.RoleData storage ref" - } - }, - "id": 337, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "members", - "nodeType": "MemberAccess", - "referencedDeclaration": 62, - "src": "7301:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 339, - "indexExpression": { - "id": 338, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 327, - "src": "7322:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7301:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "7301:37:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 342, - "nodeType": "ExpressionStatement", - "src": "7301:37:1" - }, - { - "eventCall": { - "arguments": [ - { - "id": 344, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "7369:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 345, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 327, - "src": "7375:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 346, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 439, - "src": "7384:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7384:12:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 343, - "name": "RoleRevoked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 384, - "src": "7357:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", - "typeString": "function (bytes32,address,address)" - } - }, - "id": 348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7357:40:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 349, - "nodeType": "EmitStatement", - "src": "7352:45:1" - } - ] - } - } - ] - }, - "documentation": { - "id": 323, - "nodeType": "StructuredDocumentation", - "src": "7061:114:1", - "text": " @dev Revokes `role` from `account`.\n Internal function without access restriction." - }, - "id": 353, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_revokeRole", - "nameLocation": "7189:11:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 325, - "mutability": "mutable", - "name": "role", - "nameLocation": "7209:4:1", - "nodeType": "VariableDeclaration", - "scope": 353, - "src": "7201:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 324, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7201:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 327, - "mutability": "mutable", - "name": "account", - "nameLocation": "7223:7:1", - "nodeType": "VariableDeclaration", - "scope": 353, - "src": "7215:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 326, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7215:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "7200:31:1" - }, - "returnParameters": { - "id": 329, - "nodeType": "ParameterList", - "parameters": [], - "src": "7249:0:1" - }, - "scope": 354, - "src": "7180:234:1", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 355, - "src": "1791:5625:1", - "usedErrors": [] - } - ], - "src": "93:7324:1" - }, - "id": 1 - }, - "@openzeppelin/contracts/access/IAccessControl.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", - "exportedSymbols": { - "IAccessControl": [ - 427 - ] - }, - "id": 428, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 356, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "94:23:2" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IAccessControl", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 357, - "nodeType": "StructuredDocumentation", - "src": "119:89:2", - "text": " @dev External interface of AccessControl declared to support ERC165 detection." - }, - "fullyImplemented": false, - "id": 427, - "linearizedBaseContracts": [ - 427 - ], - "name": "IAccessControl", - "nameLocation": "219:14:2", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 358, - "nodeType": "StructuredDocumentation", - "src": "240:292:2", - "text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._" - }, - "id": 366, - "name": "RoleAdminChanged", - "nameLocation": "543:16:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 360, - "indexed": true, - "mutability": "mutable", - "name": "role", - "nameLocation": "576:4:2", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "560:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 359, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "560:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 362, - "indexed": true, - "mutability": "mutable", - "name": "previousAdminRole", - "nameLocation": "598:17:2", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "582:33:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 361, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "582:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 364, - "indexed": true, - "mutability": "mutable", - "name": "newAdminRole", - "nameLocation": "633:12:2", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "617:28:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 363, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "617:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "559:87:2" - }, - "src": "537:110:2" - }, - { - "anonymous": false, - "documentation": { - "id": 367, - "nodeType": "StructuredDocumentation", - "src": "653:212:2", - "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}." - }, - "id": 375, - "name": "RoleGranted", - "nameLocation": "876:11:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 374, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 369, - "indexed": true, - "mutability": "mutable", - "name": "role", - "nameLocation": "904:4:2", - "nodeType": "VariableDeclaration", - "scope": 375, - "src": "888:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 368, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "888:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 371, - "indexed": true, - "mutability": "mutable", - "name": "account", - "nameLocation": "926:7:2", - "nodeType": "VariableDeclaration", - "scope": 375, - "src": "910:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 370, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "910:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 373, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nameLocation": "951:6:2", - "nodeType": "VariableDeclaration", - "scope": 375, - "src": "935:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 372, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "935:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "887:71:2" - }, - "src": "870:89:2" - }, - { - "anonymous": false, - "documentation": { - "id": 376, - "nodeType": "StructuredDocumentation", - "src": "965:275:2", - "text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)" - }, - "id": 384, - "name": "RoleRevoked", - "nameLocation": "1251:11:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 378, - "indexed": true, - "mutability": "mutable", - "name": "role", - "nameLocation": "1279:4:2", - "nodeType": "VariableDeclaration", - "scope": 384, - "src": "1263:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 377, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1263:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 380, - "indexed": true, - "mutability": "mutable", - "name": "account", - "nameLocation": "1301:7:2", - "nodeType": "VariableDeclaration", - "scope": 384, - "src": "1285:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 379, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1285:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 382, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nameLocation": "1326:6:2", - "nodeType": "VariableDeclaration", - "scope": 384, - "src": "1310:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1310:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1262:71:2" - }, - "src": "1245:89:2" - }, - { - "documentation": { - "id": 385, - "nodeType": "StructuredDocumentation", - "src": "1340:76:2", - "text": " @dev Returns `true` if `account` has been granted `role`." - }, - "functionSelector": "91d14854", - "id": 394, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "hasRole", - "nameLocation": "1430:7:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 387, - "mutability": "mutable", - "name": "role", - "nameLocation": "1446:4:2", - "nodeType": "VariableDeclaration", - "scope": 394, - "src": "1438:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 386, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1438:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 389, - "mutability": "mutable", - "name": "account", - "nameLocation": "1460:7:2", - "nodeType": "VariableDeclaration", - "scope": 394, - "src": "1452:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 388, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1452:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1437:31:2" - }, - "returnParameters": { - "id": 393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 392, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 394, - "src": "1492:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1492:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1491:6:2" - }, - "scope": 427, - "src": "1421:77:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 395, - "nodeType": "StructuredDocumentation", - "src": "1504:184:2", - "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}." - }, - "functionSelector": "248a9ca3", - "id": 402, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getRoleAdmin", - "nameLocation": "1702:12:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 398, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 397, - "mutability": "mutable", - "name": "role", - "nameLocation": "1723:4:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "1715:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 396, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1715:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1714:14:2" - }, - "returnParameters": { - "id": 401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 400, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "1752:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 399, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1752:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1751:9:2" - }, - "scope": 427, - "src": "1693:68:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 403, - "nodeType": "StructuredDocumentation", - "src": "1767:239:2", - "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role." - }, - "functionSelector": "2f2ff15d", - "id": 410, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "grantRole", - "nameLocation": "2020:9:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 405, - "mutability": "mutable", - "name": "role", - "nameLocation": "2038:4:2", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "2030:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 404, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2030:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 407, - "mutability": "mutable", - "name": "account", - "nameLocation": "2052:7:2", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "2044:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 406, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2029:31:2" - }, - "returnParameters": { - "id": 409, - "nodeType": "ParameterList", - "parameters": [], - "src": "2069:0:2" - }, - "scope": 427, - "src": "2011:59:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 411, - "nodeType": "StructuredDocumentation", - "src": "2076:223:2", - "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role." - }, - "functionSelector": "d547741f", - "id": 418, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "revokeRole", - "nameLocation": "2313:10:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 416, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 413, - "mutability": "mutable", - "name": "role", - "nameLocation": "2332:4:2", - "nodeType": "VariableDeclaration", - "scope": 418, - "src": "2324:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 412, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2324:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 415, - "mutability": "mutable", - "name": "account", - "nameLocation": "2346:7:2", - "nodeType": "VariableDeclaration", - "scope": 418, - "src": "2338:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 414, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2338:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2323:31:2" - }, - "returnParameters": { - "id": 417, - "nodeType": "ParameterList", - "parameters": [], - "src": "2363:0:2" - }, - "scope": 427, - "src": "2304:60:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 419, - "nodeType": "StructuredDocumentation", - "src": "2370:480:2", - "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`." - }, - "functionSelector": "36568abe", - "id": 426, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "renounceRole", - "nameLocation": "2864:12:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 421, - "mutability": "mutable", - "name": "role", - "nameLocation": "2885:4:2", - "nodeType": "VariableDeclaration", - "scope": 426, - "src": "2877:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 420, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2877:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 423, - "mutability": "mutable", - "name": "account", - "nameLocation": "2899:7:2", - "nodeType": "VariableDeclaration", - "scope": 426, - "src": "2891:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2891:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2876:31:2" - }, - "returnParameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "2916:0:2" - }, - "scope": 427, - "src": "2855:62:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 428, - "src": "209:2710:2", - "usedErrors": [] - } - ], - "src": "94:2826:2" - }, - "id": 2 - }, - "@openzeppelin/contracts/utils/Context.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "exportedSymbols": { - "Context": [ - 449 - ] - }, - "id": 450, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 429, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "86:23:3" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "Context", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 430, - "nodeType": "StructuredDocumentation", - "src": "111:496:3", - "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." - }, - "fullyImplemented": true, - "id": 449, - "linearizedBaseContracts": [ - 449 - ], - "name": "Context", - "nameLocation": "626:7:3", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 438, - "nodeType": "Block", - "src": "702:34:3", - "statements": [ - { - "expression": { - "expression": { - "id": 435, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "719:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "719:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 434, - "id": 437, - "nodeType": "Return", - "src": "712:17:3" - } - ] - }, - "id": 439, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgSender", - "nameLocation": "649:10:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 431, - "nodeType": "ParameterList", - "parameters": [], - "src": "659:2:3" - }, - "returnParameters": { - "id": 434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 433, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 439, - "src": "693:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 432, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "693:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "692:9:3" - }, - "scope": 449, - "src": "640:96:3", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 447, - "nodeType": "Block", - "src": "809:32:3", - "statements": [ - { - "expression": { - "expression": { - "id": 444, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "826:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "src": "826:8:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "functionReturnParameters": 443, - "id": 446, - "nodeType": "Return", - "src": "819:15:3" - } - ] - }, - "id": 448, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgData", - "nameLocation": "751:8:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 440, - "nodeType": "ParameterList", - "parameters": [], - "src": "759:2:3" - }, - "returnParameters": { - "id": 443, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 442, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 448, - "src": "793:14:3", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 441, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "793:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "792:16:3" - }, - "scope": 449, - "src": "742:99:3", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 450, - "src": "608:235:3", - "usedErrors": [] - } - ], - "src": "86:758:3" - }, - "id": 3 - }, - "@openzeppelin/contracts/utils/Strings.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", - "exportedSymbols": { - "Strings": [ - 652 - ] - }, - "id": 653, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 451, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "86:23:4" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Strings", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 452, - "nodeType": "StructuredDocumentation", - "src": "111:34:4", - "text": " @dev String operations." - }, - "fullyImplemented": true, - "id": 652, - "linearizedBaseContracts": [ - 652 - ], - "name": "Strings", - "nameLocation": "154:7:4", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 455, - "mutability": "constant", - "name": "_HEX_SYMBOLS", - "nameLocation": "193:12:4", - "nodeType": "VariableDeclaration", - "scope": 652, - "src": "168:58:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - }, - "typeName": { - "id": 453, - "name": "bytes16", - "nodeType": "ElementaryTypeName", - "src": "168:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "value": { - "hexValue": "30313233343536373839616263646566", - "id": 454, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "208:18:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", - "typeString": "literal_string \"0123456789abcdef\"" - }, - "value": "0123456789abcdef" - }, - "visibility": "private" - }, - { - "body": { - "id": 533, - "nodeType": "Block", - "src": "399:632:4", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 463, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "601:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "610:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "601:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 469, - "nodeType": "IfStatement", - "src": "597:51:4", - "trueBody": { - "id": 468, - "nodeType": "Block", - "src": "613:35:4", - "statements": [ - { - "expression": { - "hexValue": "30", - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "634:3:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", - "typeString": "literal_string \"0\"" - }, - "value": "0" - }, - "functionReturnParameters": 462, - "id": 467, - "nodeType": "Return", - "src": "627:10:4" - } - ] - } - }, - { - "assignments": [ - 471 - ], - "declarations": [ - { - "constant": false, - "id": 471, - "mutability": "mutable", - "name": "temp", - "nameLocation": "665:4:4", - "nodeType": "VariableDeclaration", - "scope": 533, - "src": "657:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 470, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "657:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 473, - "initialValue": { - "id": 472, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "672:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "657:20:4" - }, - { - "assignments": [ - 475 - ], - "declarations": [ - { - "constant": false, - "id": 475, - "mutability": "mutable", - "name": "digits", - "nameLocation": "695:6:4", - "nodeType": "VariableDeclaration", - "scope": 533, - "src": "687:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "687:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 476, - "nodeType": "VariableDeclarationStatement", - "src": "687:14:4" - }, - { - "body": { - "id": 487, - "nodeType": "Block", - "src": "729:57:4", - "statements": [ - { - "expression": { - "id": 481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "743:8:4", - "subExpression": { - "id": 480, - "name": "digits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 475, - "src": "743:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 482, - "nodeType": "ExpressionStatement", - "src": "743:8:4" - }, - { - "expression": { - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 483, - "name": "temp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 471, - "src": "765:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "hexValue": "3130", - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "773:2:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "765:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 486, - "nodeType": "ExpressionStatement", - "src": "765:10:4" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 477, - "name": "temp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 471, - "src": "718:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "726:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "718:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 488, - "nodeType": "WhileStatement", - "src": "711:75:4" - }, - { - "assignments": [ - 490 - ], - "declarations": [ - { - "constant": false, - "id": 490, - "mutability": "mutable", - "name": "buffer", - "nameLocation": "808:6:4", - "nodeType": "VariableDeclaration", - "scope": 533, - "src": "795:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 489, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "795:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 495, - "initialValue": { - "arguments": [ - { - "id": 493, - "name": "digits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 475, - "src": "827:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "817:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 491, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "821:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "817:17:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "795:39:4" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "863:131:4", - "statements": [ - { - "expression": { - "id": 501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 499, - "name": "digits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 475, - "src": "877:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "hexValue": "31", - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "887:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "877:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 502, - "nodeType": "ExpressionStatement", - "src": "877:11:4" - }, - { - "expression": { - "id": 520, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 503, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 490, - "src": "902:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 505, - "indexExpression": { - "id": 504, - "name": "digits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 475, - "src": "909:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "902:14:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3438", - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "932:2:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - "value": "48" - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 513, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "945:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "hexValue": "3130", - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "953:2:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "945:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "937:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 511, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "937:7:4", - "typeDescriptions": {} - } - }, - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "937:19:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "932:24:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "926:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 508, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "926:5:4", - "typeDescriptions": {} - } - }, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "926:31:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "919:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": { - "id": 506, - "name": "bytes1", - "nodeType": "ElementaryTypeName", - "src": "919:6:4", - "typeDescriptions": {} - } - }, - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "919:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "src": "902:56:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 521, - "nodeType": "ExpressionStatement", - "src": "902:56:4" - }, - { - "expression": { - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 522, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "972:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "hexValue": "3130", - "id": 523, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "981:2:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "972:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 525, - "nodeType": "ExpressionStatement", - "src": "972:11:4" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 496, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "851:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "860:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "851:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 527, - "nodeType": "WhileStatement", - "src": "844:150:4" - }, - { - "expression": { - "arguments": [ - { - "id": 530, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 490, - "src": "1017:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1010:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 528, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1010:6:4", - "typeDescriptions": {} - } - }, - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1010:14:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 462, - "id": 532, - "nodeType": "Return", - "src": "1003:21:4" - } - ] - }, - "documentation": { - "id": 456, - "nodeType": "StructuredDocumentation", - "src": "233:90:4", - "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." - }, - "id": 534, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toString", - "nameLocation": "337:8:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 459, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 458, - "mutability": "mutable", - "name": "value", - "nameLocation": "354:5:4", - "nodeType": "VariableDeclaration", - "scope": 534, - "src": "346:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "346:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "345:15:4" - }, - "returnParameters": { - "id": 462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 461, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 534, - "src": "384:13:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 460, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "384:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "383:15:4" - }, - "scope": 652, - "src": "328:703:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 574, - "nodeType": "Block", - "src": "1210:255:4", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 542, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "1224:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1233:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1224:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 548, - "nodeType": "IfStatement", - "src": "1220:54:4", - "trueBody": { - "id": 547, - "nodeType": "Block", - "src": "1236:38:4", - "statements": [ - { - "expression": { - "hexValue": "30783030", - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1257:6:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4", - "typeString": "literal_string \"0x00\"" - }, - "value": "0x00" - }, - "functionReturnParameters": 541, - "id": 546, - "nodeType": "Return", - "src": "1250:13:4" - } - ] - } - }, - { - "assignments": [ - 550 - ], - "declarations": [ - { - "constant": false, - "id": 550, - "mutability": "mutable", - "name": "temp", - "nameLocation": "1291:4:4", - "nodeType": "VariableDeclaration", - "scope": 574, - "src": "1283:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 549, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1283:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 552, - "initialValue": { - "id": 551, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "1298:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1283:20:4" - }, - { - "assignments": [ - 554 - ], - "declarations": [ - { - "constant": false, - "id": 554, - "mutability": "mutable", - "name": "length", - "nameLocation": "1321:6:4", - "nodeType": "VariableDeclaration", - "scope": 574, - "src": "1313:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 553, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1313:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 556, - "initialValue": { - "hexValue": "30", - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1330:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1313:18:4" - }, - { - "body": { - "id": 567, - "nodeType": "Block", - "src": "1359:57:4", - "statements": [ - { - "expression": { - "id": 561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1373:8:4", - "subExpression": { - "id": 560, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "1373:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 562, - "nodeType": "ExpressionStatement", - "src": "1373:8:4" - }, - { - "expression": { - "id": 565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 563, - "name": "temp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "1395:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "38", - "id": 564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1404:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "1395:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 566, - "nodeType": "ExpressionStatement", - "src": "1395:10:4" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 557, - "name": "temp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "1348:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1356:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1348:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 568, - "nodeType": "WhileStatement", - "src": "1341:75:4" - }, - { - "expression": { - "arguments": [ - { - "id": 570, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "1444:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 571, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "1451:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 569, - "name": "toHexString", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 575, - 651 - ], - "referencedDeclaration": 651, - "src": "1432:11:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (uint256,uint256) pure returns (string memory)" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1432:26:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 541, - "id": 573, - "nodeType": "Return", - "src": "1425:33:4" - } - ] - }, - "documentation": { - "id": 535, - "nodeType": "StructuredDocumentation", - "src": "1037:94:4", - "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." - }, - "id": 575, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toHexString", - "nameLocation": "1145:11:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 537, - "mutability": "mutable", - "name": "value", - "nameLocation": "1165:5:4", - "nodeType": "VariableDeclaration", - "scope": 575, - "src": "1157:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 536, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1156:15:4" - }, - "returnParameters": { - "id": 541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 540, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 575, - "src": "1195:13:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 539, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1195:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1194:15:4" - }, - "scope": 652, - "src": "1136:329:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 650, - "nodeType": "Block", - "src": "1678:351:4", - "statements": [ - { - "assignments": [ - 586 - ], - "declarations": [ - { - "constant": false, - "id": 586, - "mutability": "mutable", - "name": "buffer", - "nameLocation": "1701:6:4", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "1688:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 585, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1688:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 595, - "initialValue": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1720:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 590, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "1724:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1720:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "32", - "id": 592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1733:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "1720:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1710:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 587, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1714:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1710:25:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1688:47:4" - }, - { - "expression": { - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 596, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "1745:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 598, - "indexExpression": { - "hexValue": "30", - "id": 597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1752:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1745:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 599, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1757:3:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", - "typeString": "literal_string \"0\"" - }, - "value": "0" - }, - "src": "1745:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 601, - "nodeType": "ExpressionStatement", - "src": "1745:15:4" - }, - { - "expression": { - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 602, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "1770:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 604, - "indexExpression": { - "hexValue": "31", - "id": 603, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1777:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1770:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "78", - "id": 605, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1782:3:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", - "typeString": "literal_string \"x\"" - }, - "value": "x" - }, - "src": "1770:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 607, - "nodeType": "ExpressionStatement", - "src": "1770:15:4" - }, - { - "body": { - "id": 636, - "nodeType": "Block", - "src": "1840:87:4", - "statements": [ - { - "expression": { - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 622, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "1854:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 624, - "indexExpression": { - "id": 623, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "1861:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1854:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 625, - "name": "_HEX_SYMBOLS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "1866:12:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "id": 629, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 626, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "1879:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "hexValue": "307866", - "id": 627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1887:3:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_15_by_1", - "typeString": "int_const 15" - }, - "value": "0xf" - }, - "src": "1879:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1866:25:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "src": "1854:37:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 631, - "nodeType": "ExpressionStatement", - "src": "1854:37:4" - }, - { - "expression": { - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 632, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "1905:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "34", - "id": 633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1915:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "1905:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 635, - "nodeType": "ExpressionStatement", - "src": "1905:11:4" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 616, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "1828:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "31", - "id": 617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1832:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1828:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 637, - "initializationExpression": { - "assignments": [ - 609 - ], - "declarations": [ - { - "constant": false, - "id": 609, - "mutability": "mutable", - "name": "i", - "nameLocation": "1808:1:4", - "nodeType": "VariableDeclaration", - "scope": 637, - "src": "1800:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 608, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1800:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 615, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1812:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 611, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "1816:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1812:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1825:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1812:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1800:26:4" - }, - "loopExpression": { - "expression": { - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": true, - "src": "1835:3:4", - "subExpression": { - "id": 619, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "1837:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 621, - "nodeType": "ExpressionStatement", - "src": "1835:3:4" - }, - "nodeType": "ForStatement", - "src": "1795:132:4" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 639, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "1944:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1953:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1944:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1956:34:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", - "typeString": "literal_string \"Strings: hex length insufficient\"" - }, - "value": "Strings: hex length insufficient" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", - "typeString": "literal_string \"Strings: hex length insufficient\"" - } - ], - "id": 638, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1936:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1936:55:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 644, - "nodeType": "ExpressionStatement", - "src": "1936:55:4" - }, - { - "expression": { - "arguments": [ - { - "id": 647, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "2015:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2008:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 645, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2008:6:4", - "typeDescriptions": {} - } - }, - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2008:14:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 584, - "id": 649, - "nodeType": "Return", - "src": "2001:21:4" - } - ] - }, - "documentation": { - "id": 576, - "nodeType": "StructuredDocumentation", - "src": "1471:112:4", - "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." - }, - "id": 651, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toHexString", - "nameLocation": "1597:11:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 581, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 578, - "mutability": "mutable", - "name": "value", - "nameLocation": "1617:5:4", - "nodeType": "VariableDeclaration", - "scope": 651, - "src": "1609:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 577, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1609:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 580, - "mutability": "mutable", - "name": "length", - "nameLocation": "1632:6:4", - "nodeType": "VariableDeclaration", - "scope": 651, - "src": "1624:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 579, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1624:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1608:31:4" - }, - "returnParameters": { - "id": 584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 583, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 651, - "src": "1663:13:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 582, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1663:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1662:15:4" - }, - "scope": 652, - "src": "1588:441:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 653, - "src": "146:1885:4", - "usedErrors": [] - } - ], - "src": "86:1946:4" - }, - "id": 4 - }, - "@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "exportedSymbols": { - "ERC165": [ - 676 - ], - "IERC165": [ - 688 - ] - }, - "id": 677, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 654, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "99:23:5" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "file": "./IERC165.sol", - "id": 655, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 677, - "sourceUnit": 689, - "src": "124:23:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 657, - "name": "IERC165", - "nodeType": "IdentifierPath", - "referencedDeclaration": 688, - "src": "754:7:5" - }, - "id": 658, - "nodeType": "InheritanceSpecifier", - "src": "754:7:5" - } - ], - "canonicalName": "ERC165", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 656, - "nodeType": "StructuredDocumentation", - "src": "149:576:5", - "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation." - }, - "fullyImplemented": true, - "id": 676, - "linearizedBaseContracts": [ - 676, - 688 - ], - "name": "ERC165", - "nameLocation": "744:6:5", - "nodeType": "ContractDefinition", - "nodes": [ - { - "baseFunctions": [ - 687 - ], - "body": { - "id": 674, - "nodeType": "Block", - "src": "920:64:5", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 667, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 661, - "src": "937:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 669, - "name": "IERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "957:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC165_$688_$", - "typeString": "type(contract IERC165)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_IERC165_$688_$", - "typeString": "type(contract IERC165)" - } - ], - "id": 668, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "952:4:5", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 670, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "952:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$688", - "typeString": "type(contract IERC165)" - } - }, - "id": 671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "interfaceId", - "nodeType": "MemberAccess", - "src": "952:25:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "937:40:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 666, - "id": 673, - "nodeType": "Return", - "src": "930:47:5" - } - ] - }, - "documentation": { - "id": 659, - "nodeType": "StructuredDocumentation", - "src": "768:56:5", - "text": " @dev See {IERC165-supportsInterface}." - }, - "functionSelector": "01ffc9a7", - "id": 675, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "838:17:5", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 663, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "896:8:5" - }, - "parameters": { - "id": 662, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 661, - "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "863:11:5", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "856:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 660, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "856:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "855:20:5" - }, - "returnParameters": { - "id": 666, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 665, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "914:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 664, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "914:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "913:6:5" - }, - "scope": 676, - "src": "829:155:5", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - } - ], - "scope": 677, - "src": "726:260:5", - "usedErrors": [] - } - ], - "src": "99:888:5" - }, - "id": 5 - }, - "@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "exportedSymbols": { - "IERC165": [ - 688 - ] - }, - "id": 689, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 678, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "100:23:6" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IERC165", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 679, - "nodeType": "StructuredDocumentation", - "src": "125:279:6", - "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." - }, - "fullyImplemented": false, - "id": 688, - "linearizedBaseContracts": [ - 688 - ], - "name": "IERC165", - "nameLocation": "415:7:6", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 680, - "nodeType": "StructuredDocumentation", - "src": "429:340:6", - "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." - }, - "functionSelector": "01ffc9a7", - "id": 687, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "783:17:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 683, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 682, - "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "808:11:6", - "nodeType": "VariableDeclaration", - "scope": 687, - "src": "801:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 681, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "801:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "800:20:6" - }, - "returnParameters": { - "id": 686, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 685, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 687, - "src": "844:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 684, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "844:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "843:6:6" - }, - "scope": 688, - "src": "774:76:6", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 689, - "src": "405:447:6", - "usedErrors": [] - } - ], - "src": "100:753:6" - }, - "id": 6 - }, - "contracts/DAppStore.sol": { - "ast": { - "absolutePath": "contracts/DAppStore.sol", - "exportedSymbols": { - "AccessControl": [ - 354 - ], - "Context": [ - 449 - ], - "DAppStore": [ - 1034 - ], - "ERC165": [ - 676 - ], - "IAccessControl": [ - 427 - ], - "IERC165": [ - 688 - ], - "Initializable": [ - 45 - ], - "Strings": [ - 652 - ] - }, - "id": 1035, - "license": "Unlicense", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 690, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "37:23:7" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "id": 691, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1035, - "sourceUnit": 46, - "src": "62:75:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", - "file": "@openzeppelin/contracts/access/AccessControl.sol", - "id": 692, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1035, - "sourceUnit": 355, - "src": "138:58:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 693, - "name": "Initializable", - "nodeType": "IdentifierPath", - "referencedDeclaration": 45, - "src": "220:13:7" - }, - "id": 694, - "nodeType": "InheritanceSpecifier", - "src": "220:13:7" - }, - { - "baseName": { - "id": 695, - "name": "AccessControl", - "nodeType": "IdentifierPath", - "referencedDeclaration": 354, - "src": "235:13:7" - }, - "id": 696, - "nodeType": "InheritanceSpecifier", - "src": "235:13:7" - } - ], - "canonicalName": "DAppStore", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 1034, - "linearizedBaseContracts": [ - 1034, - 354, - 676, - 688, - 427, - 449, - 45 - ], - "name": "DAppStore", - "nameLocation": "207:9:7", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "functionSelector": "75b238fc", - "id": 701, - "mutability": "constant", - "name": "ADMIN_ROLE", - "nameLocation": "284:10:7", - "nodeType": "VariableDeclaration", - "scope": 1034, - "src": "260:60:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 697, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "260:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "41444d494e5f524f4c45", - "id": 699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "307:12:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", - "typeString": "literal_string \"ADMIN_ROLE\"" - }, - "value": "ADMIN_ROLE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", - "typeString": "literal_string \"ADMIN_ROLE\"" - } - ], - "id": 698, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "297:9:7", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "297:23:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "f9a6cbae", - "id": 703, - "mutability": "mutable", - "name": "appID", - "nameLocation": "341:5:7", - "nodeType": "VariableDeclaration", - "scope": 1034, - "src": "326:20:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 702, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "326:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7ba13680", - "id": 705, - "mutability": "mutable", - "name": "amountToPay", - "nameLocation": "364:11:7", - "nodeType": "VariableDeclaration", - "scope": 1034, - "src": "352:23:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 704, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "352:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 709, - "mutability": "mutable", - "name": "appOwners", - "nameLocation": "406:9:7", - "nodeType": "VariableDeclaration", - "scope": 1034, - "src": "381:34:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 708, - "keyType": { - "id": 706, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "389:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "381:24:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 707, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "397:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 713, - "mutability": "mutable", - "name": "appName", - "nameLocation": "445:7:7", - "nodeType": "VariableDeclaration", - "scope": 1034, - "src": "421:31:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 712, - "keyType": { - "id": 710, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "429:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "421:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 711, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "437:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 717, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "482:11:7", - "nodeType": "VariableDeclaration", - "scope": 1034, - "src": "458:35:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 716, - "keyType": { - "id": 714, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "466:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "458:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 715, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "474:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 721, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "523:10:7", - "nodeType": "VariableDeclaration", - "scope": 1034, - "src": "499:34:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 720, - "keyType": { - "id": 718, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "507:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "499:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 719, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "515:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 725, - "mutability": "mutable", - "name": "submitTime", - "nameLocation": "561:10:7", - "nodeType": "VariableDeclaration", - "scope": 1034, - "src": "539:32:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 724, - "keyType": { - "id": 722, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "547:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "539:21:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 723, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "555:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 729, - "mutability": "mutable", - "name": "appVerified", - "nameLocation": "599:11:7", - "nodeType": "VariableDeclaration", - "scope": 1034, - "src": "577:33:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "typeName": { - "id": 728, - "keyType": { - "id": 726, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "585:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "577:21:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 727, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "593:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "visibility": "internal" - }, - { - "anonymous": false, - "id": 741, - "name": "NewApp", - "nameLocation": "623:6:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 740, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 731, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "635:5:7", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "630:10:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 730, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "630:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 733, - "indexed": false, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "650:8:7", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "642:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 732, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "642:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 735, - "indexed": false, - "mutability": "mutable", - "name": "appName", - "nameLocation": "667:7:7", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "660:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 734, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "660:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 737, - "indexed": false, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "683:11:7", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "676:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 736, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "676:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 739, - "indexed": false, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "703:10:7", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "696:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 738, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "696:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "629:85:7" - }, - "src": "617:98:7" - }, - { - "anonymous": false, - "id": 753, - "name": "UpdateApp", - "nameLocation": "726:9:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 752, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 743, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "741:5:7", - "nodeType": "VariableDeclaration", - "scope": 753, - "src": "736:10:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 742, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "736:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 745, - "indexed": false, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "756:8:7", - "nodeType": "VariableDeclaration", - "scope": 753, - "src": "748:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 744, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "748:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 747, - "indexed": false, - "mutability": "mutable", - "name": "appName", - "nameLocation": "773:7:7", - "nodeType": "VariableDeclaration", - "scope": 753, - "src": "766:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 746, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "766:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 749, - "indexed": false, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "789:11:7", - "nodeType": "VariableDeclaration", - "scope": 753, - "src": "782:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 748, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "782:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 751, - "indexed": false, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "809:10:7", - "nodeType": "VariableDeclaration", - "scope": 753, - "src": "802:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 750, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "802:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "735:85:7" - }, - "src": "720:101:7" - }, - { - "anonymous": false, - "id": 757, - "name": "ReleaseApp", - "nameLocation": "832:10:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 756, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 755, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "848:5:7", - "nodeType": "VariableDeclaration", - "scope": 757, - "src": "843:10:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 754, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "843:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "842:12:7" - }, - "src": "826:29:7" - }, - { - "anonymous": false, - "id": 761, - "name": "VerifyApp", - "nameLocation": "866:9:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 759, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "881:5:7", - "nodeType": "VariableDeclaration", - "scope": 761, - "src": "876:10:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 758, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "876:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "875:12:7" - }, - "src": "860:28:7" - }, - { - "anonymous": false, - "id": 765, - "name": "DeleteApp", - "nameLocation": "899:9:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 764, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 763, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "914:5:7", - "nodeType": "VariableDeclaration", - "scope": 765, - "src": "909:10:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 762, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "909:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "908:12:7" - }, - "src": "893:28:7" - }, - { - "body": { - "id": 803, - "nodeType": "Block", - "src": "1012:165:7", - "statements": [ - { - "expression": { - "id": 777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 775, - "name": "amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 705, - "src": "1022:11:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 776, - "name": "_amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "1036:12:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1022:26:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 778, - "nodeType": "ExpressionStatement", - "src": "1022:26:7" - }, - { - "body": { - "id": 797, - "nodeType": "Block", - "src": "1094:58:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 791, - "name": "ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "1119:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "baseExpression": { - "id": 792, - "name": "admins", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "1131:6:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 794, - "indexExpression": { - "id": 793, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 780, - "src": "1138:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1131:9:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 790, - "name": "_setupRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 262, - "src": "1108:10:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1108:33:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 796, - "nodeType": "ExpressionStatement", - "src": "1108:33:7" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 783, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 780, - "src": "1073:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 784, - "name": "admins", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "1075:6:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1075:13:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1073:15:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 798, - "initializationExpression": { - "assignments": [ - 780 - ], - "declarations": [ - { - "constant": false, - "id": 780, - "mutability": "mutable", - "name": "i", - "nameLocation": "1067:1:7", - "nodeType": "VariableDeclaration", - "scope": 798, - "src": "1062:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 779, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1062:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 782, - "initialValue": { - "hexValue": "30", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1071:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1062:10:7" - }, - "loopExpression": { - "expression": { - "id": 788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1089:3:7", - "subExpression": { - "id": 787, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 780, - "src": "1089:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 789, - "nodeType": "ExpressionStatement", - "src": "1089:3:7" - }, - "nodeType": "ForStatement", - "src": "1058:94:7" - }, - { - "expression": { - "id": 801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 799, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1161:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1169:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1161:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 802, - "nodeType": "ExpressionStatement", - "src": "1161:9:7" - } - ] - }, - "functionSelector": "a920b78c", - "id": 804, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 773, - "kind": "modifierInvocation", - "modifierName": { - "id": 772, - "name": "initializer", - "nodeType": "IdentifierPath", - "referencedDeclaration": 44, - "src": "1000:11:7" - }, - "nodeType": "ModifierInvocation", - "src": "1000:11:7" - } - ], - "name": "initialize", - "nameLocation": "936:10:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 767, - "mutability": "mutable", - "name": "_amountToPay", - "nameLocation": "952:12:7", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "947:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 766, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "947:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 770, - "mutability": "mutable", - "name": "admins", - "nameLocation": "985:6:7", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "966:25:7", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 768, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "966:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 769, - "nodeType": "ArrayTypeName", - "src": "966:9:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - } - ], - "src": "946:46:7" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "1012:0:7" - }, - "scope": 1034, - "src": "927:250:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "canonicalName": "DAppStore.App", - "id": 815, - "members": [ - { - "constant": false, - "id": 806, - "mutability": "mutable", - "name": "appID", - "nameLocation": "1209:5:7", - "nodeType": "VariableDeclaration", - "scope": 815, - "src": "1204:10:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 805, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1204:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 808, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "1232:8:7", - "nodeType": "VariableDeclaration", - "scope": 815, - "src": "1224:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 807, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1224:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 810, - "mutability": "mutable", - "name": "appName", - "nameLocation": "1257:7:7", - "nodeType": "VariableDeclaration", - "scope": 815, - "src": "1250:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 809, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1250:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 812, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "1281:11:7", - "nodeType": "VariableDeclaration", - "scope": 815, - "src": "1274:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 811, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1274:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 814, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "1309:10:7", - "nodeType": "VariableDeclaration", - "scope": 815, - "src": "1302:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 813, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1302:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "App", - "nameLocation": "1190:3:7", - "nodeType": "StructDefinition", - "scope": 1034, - "src": "1183:143:7", - "visibility": "public" - }, - { - "body": { - "id": 877, - "nodeType": "Block", - "src": "1444:404:7", - "statements": [ - { - "expression": { - "id": 829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 824, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "1528:9:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 826, - "indexExpression": { - "id": 825, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1538:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1528:16:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 827, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1547:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1547:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1528:29:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 830, - "nodeType": "ExpressionStatement", - "src": "1528:29:7" - }, - { - "expression": { - "id": 835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 831, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "1567:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 833, - "indexExpression": { - "id": 832, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1575:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1567:14:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 834, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "1584:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1567:22:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 836, - "nodeType": "ExpressionStatement", - "src": "1567:22:7" - }, - { - "expression": { - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 837, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "1599:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 839, - "indexExpression": { - "id": 838, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1611:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1599:18:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 840, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 819, - "src": "1620:9:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1599:30:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 842, - "nodeType": "ExpressionStatement", - "src": "1599:30:7" - }, - { - "expression": { - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 843, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "1639:10:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 845, - "indexExpression": { - "id": 844, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1650:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1639:17:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 846, - "name": "_additionalData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 821, - "src": "1659:15:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1639:35:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 848, - "nodeType": "ExpressionStatement", - "src": "1639:35:7" - }, - { - "expression": { - "id": 854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 849, - "name": "submitTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "1684:10:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 851, - "indexExpression": { - "id": 850, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1695:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1684:17:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 852, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "1704:5:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "1704:15:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1684:35:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 855, - "nodeType": "ExpressionStatement", - "src": "1684:35:7" - }, - { - "eventCall": { - "arguments": [ - { - "id": 857, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1741:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 858, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1748:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1748:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "baseExpression": { - "id": 860, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "1760:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 862, - "indexExpression": { - "id": 861, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1768:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1760:14:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 863, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "1776:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 865, - "indexExpression": { - "id": 864, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1788:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1776:18:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 866, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "1796:10:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 868, - "indexExpression": { - "id": 867, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1807:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1796:17:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 856, - "name": "NewApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "1734:6:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory,string memory,string memory)" - } - }, - "id": 869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1734:80:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 870, - "nodeType": "EmitStatement", - "src": "1729:85:7" - }, - { - "expression": { - "id": 875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 871, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1824:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 872, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1832:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1840:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1832:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1824:17:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 876, - "nodeType": "ExpressionStatement", - "src": "1824:17:7" - } - ] - }, - "functionSelector": "e73173a4", - "id": 878, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "submitDApp", - "nameLocation": "1341:10:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 822, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 817, - "mutability": "mutable", - "name": "_name", - "nameLocation": "1366:5:7", - "nodeType": "VariableDeclaration", - "scope": 878, - "src": "1352:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 816, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1352:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 819, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "1387:9:7", - "nodeType": "VariableDeclaration", - "scope": 878, - "src": "1373:23:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 818, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1373:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 821, - "mutability": "mutable", - "name": "_additionalData", - "nameLocation": "1412:15:7", - "nodeType": "VariableDeclaration", - "scope": 878, - "src": "1398:29:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 820, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1398:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1351:77:7" - }, - "returnParameters": { - "id": 823, - "nodeType": "ParameterList", - "parameters": [], - "src": "1444:0:7" - }, - "scope": 1034, - "src": "1332:516:7", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 926, - "nodeType": "Block", - "src": "1971:277:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 890, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "1989:9:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 892, - "indexExpression": { - "id": 891, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "1999:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1989:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 893, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2010:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2010:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1989:31:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4e6f74206f776e6572206f662064617070", - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2022:19:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - }, - "value": "Not owner of dapp" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - } - ], - "id": 889, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1981:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1981:61:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 898, - "nodeType": "ExpressionStatement", - "src": "1981:61:7" - }, - { - "expression": { - "id": 903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 899, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "2052:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 901, - "indexExpression": { - "id": 900, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "2060:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2052:15:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 902, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "2070:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2052:23:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 904, - "nodeType": "ExpressionStatement", - "src": "2052:23:7" - }, - { - "expression": { - "id": 909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 905, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "2085:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 907, - "indexExpression": { - "id": 906, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "2097:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2085:19:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 908, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "2107:9:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2085:31:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 910, - "nodeType": "ExpressionStatement", - "src": "2085:31:7" - }, - { - "expression": { - "id": 915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 911, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "2126:10:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 913, - "indexExpression": { - "id": 912, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "2137:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2126:18:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 914, - "name": "_additionalData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "2147:15:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2126:36:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 916, - "nodeType": "ExpressionStatement", - "src": "2126:36:7" - }, - { - "eventCall": { - "arguments": [ - { - "id": 918, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "2187:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2195:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2195:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 921, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "2207:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 922, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "2214:9:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 923, - "name": "_additionalData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "2225:15:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 917, - "name": "UpdateApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "2177:9:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory,string memory,string memory)" - } - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2177:64:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 925, - "nodeType": "EmitStatement", - "src": "2172:69:7" - } - ] - }, - "functionSelector": "ab444f28", - "id": 927, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "updateDApp", - "nameLocation": "1863:10:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 880, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "1879:6:7", - "nodeType": "VariableDeclaration", - "scope": 927, - "src": "1874:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 879, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1874:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 882, - "mutability": "mutable", - "name": "_name", - "nameLocation": "1901:5:7", - "nodeType": "VariableDeclaration", - "scope": 927, - "src": "1887:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 881, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1887:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "1922:9:7", - "nodeType": "VariableDeclaration", - "scope": 927, - "src": "1908:23:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 883, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1908:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "mutability": "mutable", - "name": "_additionalData", - "nameLocation": "1947:15:7", - "nodeType": "VariableDeclaration", - "scope": 927, - "src": "1933:29:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 885, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1933:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1873:90:7" - }, - "returnParameters": { - "id": 888, - "nodeType": "ParameterList", - "parameters": [], - "src": "1971:0:7" - }, - "scope": 1034, - "src": "1854:394:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 951, - "nodeType": "Block", - "src": "2322:112:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 936, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2343:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 937, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "2351:9:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 939, - "indexExpression": { - "id": 938, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2361:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2351:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "baseExpression": { - "id": 940, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "2370:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 942, - "indexExpression": { - "id": 941, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2378:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2370:15:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 943, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "2387:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 945, - "indexExpression": { - "id": 944, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2399:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2387:19:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 946, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "2408:10:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 948, - "indexExpression": { - "id": 947, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2419:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2408:18:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 935, - "name": "App", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 815, - "src": "2339:3:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_App_$815_storage_ptr_$", - "typeString": "type(struct DAppStore.App storage pointer)" - } - }, - "id": 949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2339:88:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$815_memory_ptr", - "typeString": "struct DAppStore.App memory" - } - }, - "functionReturnParameters": 934, - "id": 950, - "nodeType": "Return", - "src": "2332:95:7" - } - ] - }, - "functionSelector": "887e4b86", - "id": 952, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDAppData", - "nameLocation": "2263:11:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 930, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 929, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "2280:6:7", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "2275:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 928, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2275:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2274:13:7" - }, - "returnParameters": { - "id": 934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 933, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "2310:10:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$815_memory_ptr", - "typeString": "struct DAppStore.App" - }, - "typeName": { - "id": 932, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 931, - "name": "App", - "nodeType": "IdentifierPath", - "referencedDeclaration": 815, - "src": "2310:3:7" - }, - "referencedDeclaration": 815, - "src": "2310:3:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$815_storage_ptr", - "typeString": "struct DAppStore.App" - } - }, - "visibility": "internal" - } - ], - "src": "2309:12:7" - }, - "scope": 1034, - "src": "2254:180:7", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 980, - "nodeType": "Block", - "src": "2481:342:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 958, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "2499:9:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 960, - "indexExpression": { - "id": 959, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 954, - "src": "2509:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2499:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 961, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2520:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2520:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2499:31:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4e6f74206f776e6572206f662064617070", - "id": 964, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2532:19:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - }, - "value": "Not owner of dapp" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - } - ], - "id": 957, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2491:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2491:61:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 966, - "nodeType": "ExpressionStatement", - "src": "2491:61:7" - }, - { - "documentation": "The test-version on rinkeby does check for 48h passed.", - "eventCall": { - "arguments": [ - { - "id": 968, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 954, - "src": "2758:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 967, - "name": "ReleaseApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "2747:10:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2747:18:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 970, - "nodeType": "EmitStatement", - "src": "2742:23:7" - }, - { - "expression": { - "arguments": [ - { - "id": 977, - "name": "amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 705, - "src": "2804:11:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 973, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2783:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2783:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2775:8:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 971, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2775:8:7", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2775:19:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "src": "2775:28:7", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2775:41:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 979, - "nodeType": "ExpressionStatement", - "src": "2775:41:7" - } - ] - }, - "functionSelector": "5cadd4a9", - "id": 981, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "releaseDApp", - "nameLocation": "2449:11:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 955, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "2466:6:7", - "nodeType": "VariableDeclaration", - "scope": 981, - "src": "2461:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 953, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2461:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2460:13:7" - }, - "returnParameters": { - "id": 956, - "nodeType": "ParameterList", - "parameters": [], - "src": "2481:0:7" - }, - "scope": 1034, - "src": "2440:383:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1008, - "nodeType": "Block", - "src": "2890:142:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 990, - "name": "appVerified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 729, - "src": "2908:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 992, - "indexExpression": { - "id": 991, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2920:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2908:19:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "66616c7365", - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2931:5:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2908:28:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416c7265616479207665726966696564", - "id": 995, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2938:18:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5", - "typeString": "literal_string \"Already verified\"" - }, - "value": "Already verified" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5", - "typeString": "literal_string \"Already verified\"" - } - ], - "id": 989, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2900:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2900:57:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 997, - "nodeType": "ExpressionStatement", - "src": "2900:57:7" - }, - { - "expression": { - "id": 1002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 998, - "name": "appVerified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 729, - "src": "2967:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 1000, - "indexExpression": { - "id": 999, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2979:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2967:19:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 1001, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2989:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2967:26:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1003, - "nodeType": "ExpressionStatement", - "src": "2967:26:7" - }, - { - "eventCall": { - "arguments": [ - { - "id": 1005, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "3018:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1004, - "name": "VerifyApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "3008:9:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3008:17:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1007, - "nodeType": "EmitStatement", - "src": "3003:22:7" - } - ] - }, - "functionSelector": "1805d79f", - "id": 1009, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 986, - "name": "ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "2878:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 987, - "kind": "modifierInvocation", - "modifierName": { - "id": 985, - "name": "onlyRole", - "nodeType": "IdentifierPath", - "referencedDeclaration": 86, - "src": "2869:8:7" - }, - "nodeType": "ModifierInvocation", - "src": "2869:20:7" - } - ], - "name": "verifyDApp", - "nameLocation": "2838:10:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 983, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "2854:6:7", - "nodeType": "VariableDeclaration", - "scope": 1009, - "src": "2849:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 982, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2849:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2848:13:7" - }, - "returnParameters": { - "id": 988, - "nodeType": "ParameterList", - "parameters": [], - "src": "2890:0:7" - }, - "scope": 1034, - "src": "2829:203:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1018, - "nodeType": "Block", - "src": "3077:39:7", - "statements": [ - { - "eventCall": { - "arguments": [ - { - "id": 1015, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1011, - "src": "3102:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1014, - "name": "DeleteApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "3092:9:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3092:17:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1017, - "nodeType": "EmitStatement", - "src": "3087:22:7" - } - ] - }, - "functionSelector": "6df693d3", - "id": 1019, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deleteApp", - "nameLocation": "3047:9:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1011, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "3062:6:7", - "nodeType": "VariableDeclaration", - "scope": 1019, - "src": "3057:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1010, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3057:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3056:13:7" - }, - "returnParameters": { - "id": 1013, - "nodeType": "ParameterList", - "parameters": [], - "src": "3077:0:7" - }, - "scope": 1034, - "src": "3038:78:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1032, - "nodeType": "Block", - "src": "3187:46:7", - "statements": [ - { - "expression": { - "id": 1030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1026, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "3197:9:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 1028, - "indexExpression": { - "id": 1027, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "3207:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3197:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 1029, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "3217:9:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3197:29:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1031, - "nodeType": "ExpressionStatement", - "src": "3197:29:7" - } - ] - }, - "functionSelector": "e58cdd90", - "id": 1033, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferAppOwner", - "nameLocation": "3131:16:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1021, - "mutability": "mutable", - "name": "_newOwner", - "nameLocation": "3156:9:7", - "nodeType": "VariableDeclaration", - "scope": 1033, - "src": "3148:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1020, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3148:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1023, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "3172:6:7", - "nodeType": "VariableDeclaration", - "scope": 1033, - "src": "3167:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1022, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3167:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3147:32:7" - }, - "returnParameters": { - "id": 1025, - "nodeType": "ParameterList", - "parameters": [], - "src": "3187:0:7" - }, - "scope": 1034, - "src": "3122:111:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1035, - "src": "198:3038:7", - "usedErrors": [] - } - ], - "src": "37:3200:7" - }, - "id": 7 - } - } - } -} diff --git a/contracts/artifacts/build-info/3754d022ee2847c04ff26aa25abf96cc.json b/contracts/artifacts/build-info/3754d022ee2847c04ff26aa25abf96cc.json deleted file mode 100644 index 69d139b..0000000 --- a/contracts/artifacts/build-info/3754d022ee2847c04ff26aa25abf96cc.json +++ /dev/null @@ -1,26242 +0,0 @@ -{ - "id": "3754d022ee2847c04ff26aa25abf96cc", - "_format": "hh-sol-build-info-1", - "solcVersion": "0.8.9", - "solcLongVersion": "0.8.9+commit.e5eed63a", - "input": { - "language": "Solidity", - "sources": { - "contracts/DAppStore.sol": { - "content": "//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\n\ncontract DAppStore is Initializable {\n address public owner;\n uint256 public appID;\n uint public amountToPay;\n mapping(uint => address) appOwners;\n mapping(uint => string) appName;\n mapping(uint => string) appIPFSHash;\n mapping(uint => string) appAddData;\n mapping(uint => uint) submitTime;\n mapping(uint => bool) appVerified;\n\n event NewApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n event UpdateApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n event ReleaseApp(uint appID);\n event VerifyApp(uint appID);\n\n modifier _onlyOwner {\n require (msg.sender == owner, \"Only owner\");\n _;\n }\n\n function initialize(uint _amountToPay) public initializer {\n amountToPay = _amountToPay;\n // TODO: Replace with real address\n owner = msg.sender;\n appID = 0;\n }\n\n struct App {\n uint appID;\n address appOwner;\n string appName;\n string appIPFSHash;\n string appAddData;\n }\n\n function submitDApp(string memory _name, string memory _ipfsHash, string memory _additionalData) public payable {\n //require(msg.value == amountToPay, \"Ether for lockup required\");\n appOwners[appID] = msg.sender;\n appName[appID] = _name;\n appIPFSHash[appID] = _ipfsHash;\n appAddData[appID] = _additionalData;\n submitTime[appID] = block.timestamp;\n emit NewApp(appID, msg.sender, appName[appID], appIPFSHash[appID], appAddData[appID]);\n appID = appID + 1;\n }\n\n function updateDApp(uint _appID, string memory _name, string memory _ipfsHash, string memory _additionalData) public {\n require(appOwners[_appID] == msg.sender, \"Not owner of dapp\");\n appName[_appID] = _name;\n appIPFSHash[_appID] = _ipfsHash;\n appAddData[_appID] = _additionalData;\n emit UpdateApp(_appID, msg.sender, _name, _ipfsHash, _additionalData);\n }\n\n function getDAppData(uint _appID) external view returns(App memory) {\n return App(_appID, appOwners[_appID], appName[_appID], appIPFSHash[_appID], appAddData[_appID]);\n }\n\n function releaseDApp(uint _appID) public {\n require(appOwners[_appID] == msg.sender, \"Not owner of dapp\");\n /**\n The test-version on rinkeby does check for 48h passed.\n */\n //require(submitTime[_appID]+172800 address) appOwners;\n mapping(uint => string) appName;\n mapping(uint => string) appIPFSHash;\n mapping(uint => string) appAddData;\n mapping(uint => uint) submitTime;\n\n event NewApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n event UpdateApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n\n modifier _onlyOwner {\n require (msg.sender == owner, \"Only owner\");\n _;\n }\n\n constructor (uint _amountToPay) {\n amountToPay = _amountToPay;\n owner = msg.sender;\n appID = 0;\n }\n\n struct App {\n uint appID;\n address appOwner;\n string appName;\n string appIPFSHash;\n string appAddData;\n }\n\n function submitDApp(string memory _name, string memory _ipfsHash, string memory _additionalData) public payable {\n require(msg.value == amountToPay, \"Ether for lockup required\");\n appOwners[appID] = msg.sender;\n appName[appID] = _name;\n appIPFSHash[appID] = _ipfsHash;\n appAddData[appID] = _additionalData;\n submitTime[appID] = block.timestamp;\n appID = appID + 1;\n }\n\n function updateDApp(uint _appID, string memory _name, string memory _ipfsHash, string memory _additionalData) public {\n require(appOwners[_appID] == msg.sender, \"Not owner of dapp\");\n appName[_appID] = _name;\n appIPFSHash[_appID] = _ipfsHash;\n appAddData[_appID] = _additionalData;\n emit UpdateApp(_appID, msg.sender, _name, _ipfsHash, _additionalData);\n }\n\n function getDAppData(uint _appID) external view returns(App memory) {\n return App(_appID, appOwners[_appID], appName[_appID], appIPFSHash[_appID], appAddData[_appID]);\n }\n\n function releaseDApp(uint _appID) public {\n require(appOwners[_appID] == msg.sender, \"Not owner of dapp\");\n /**\n The test-version on rinkeby does check for 48h passed.\n */\n //require(submitTime[_appID]+172800 memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct DAppStore.App -> struct DAppStore.App\n function abi_encode_t_struct$_App_$156_memory_ptr_to_t_struct$_App_$156_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0xa0)\n\n {\n // appID\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // appOwner\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // appName\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appIPFSHash\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appAddData\n\n let memberValue0 := mload(add(value, 0x80))\n\n mstore(add(pos, 0x80), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_App_$156_memory_ptr__to_t_struct$_App_$156_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_App_$156_memory_ptr_to_t_struct$_App_$156_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_17d9f114efaa93d67eedad749dd7fd16a6895ff93e28b7a30c667a069f2ed42d(memPtr) {\n\n mstore(add(memPtr, 0), \"Only owner\")\n\n }\n\n function abi_encode_t_stringliteral_17d9f114efaa93d67eedad749dd7fd16a6895ff93e28b7a30c667a069f2ed42d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 10)\n store_literal_in_memory_17d9f114efaa93d67eedad749dd7fd16a6895ff93e28b7a30c667a069f2ed42d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_17d9f114efaa93d67eedad749dd7fd16a6895ff93e28b7a30c667a069f2ed42d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_17d9f114efaa93d67eedad749dd7fd16a6895ff93e28b7a30c667a069f2ed42d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5(memPtr) {\n\n mstore(add(memPtr, 0), \"Already verified\")\n\n }\n\n function abi_encode_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner of dapp\")\n\n }\n\n function abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, 0x20)\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n mstore(add(memPtr, 32), \"dy initialized\")\n\n }\n\n function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", - "id": 3, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "6080604052600436106100865760003560e01c80638da5cb5b116100595780638da5cb5b14610145578063ab444f2814610170578063e73173a414610199578063f9a6cbae146101b5578063fe4b84df146101e057610086565b80631805d79f1461008b5780635cadd4a9146100b45780637ba13680146100dd578063887e4b8614610108575b600080fd5b34801561009757600080fd5b506100b260048036038101906100ad9190610c48565b610209565b005b3480156100c057600080fd5b506100db60048036038101906100d69190610c48565b610366565b005b3480156100e957600080fd5b506100f261048a565b6040516100ff9190610c84565b60405180910390f35b34801561011457600080fd5b5061012f600480360381019061012a9190610c48565b610490565b60405161013c9190610e0c565b60405180910390f35b34801561015157600080fd5b5061015a6106e0565b6040516101679190610e3d565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190610f8d565b610706565b005b6101b360048036038101906101ae9190611048565b610864565b005b3480156101c157600080fd5b506101ca6109e6565b6040516101d79190610c84565b60405180910390f35b3480156101ec57600080fd5b5061020760048036038101906102029190610c48565b6109ec565b005b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610299576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102909061114c565b60405180910390fd5b600015156008600083815260200190815260200160002060009054906101000a900460ff16151514610300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f7906111b8565b60405180910390fd5b60016008600083815260200190815260200160002060006101000a81548160ff0219169083151502179055507f19c567786dbc11ad5299760ad5f30bd149748ab79fafc96892ec5c0b0b72b7358160405161035b9190610c84565b60405180910390a150565b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fe90611224565b60405180910390fd5b7f429e5a8f4e1289616a7ca758e14bd7070bbdb21d11f443824c6738d41b4432c2816040516104369190610c84565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6002549081150290604051600060405180830381858888f19350505050158015610486573d6000803e3d6000fd5b5050565b60025481565b610498610b16565b6040518060a001604052808381526020016003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160046000858152602001908152602001600020805461051690611273565b80601f016020809104026020016040519081016040528092919081815260200182805461054290611273565b801561058f5780601f106105645761010080835404028352916020019161058f565b820191906000526020600020905b81548152906001019060200180831161057257829003601f168201915b505050505081526020016005600085815260200190815260200160002080546105b790611273565b80601f01602080910402602001604051908101604052809291908181526020018280546105e390611273565b80156106305780601f1061060557610100808354040283529160200191610630565b820191906000526020600020905b81548152906001019060200180831161061357829003601f168201915b5050505050815260200160066000858152602001908152602001600020805461065890611273565b80601f016020809104026020016040519081016040528092919081815260200182805461068490611273565b80156106d15780601f106106a6576101008083540402835291602001916106d1565b820191906000526020600020905b8154815290600101906020018083116106b457829003601f168201915b50505050508152509050919050565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166003600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e90611224565b60405180910390fd5b826004600086815260200190815260200160002090805190602001906107ce929190610b5b565b50816005600086815260200190815260200160002090805190602001906107f6929190610b5b565b508060066000868152602001908152602001600020908051906020019061081e929190610b5b565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd862084338585856040516108569594939291906112de565b60405180910390a150505050565b3360036000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260046000600154815260200190815260200160002090805190602001906108e1929190610b5b565b5081600560006001548152602001908152602001600020908051906020019061090b929190610b5b565b50806006600060015481526020019081526020016000209080519060200190610935929190610b5b565b5042600760006001548152602001908152602001600020819055507f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc38600154336004600060015481526020019081526020016000206005600060015481526020019081526020016000206006600060015481526020019081526020016000206040516109c59594939291906113db565b60405180910390a1600180546109db9190611472565b600181905550505050565b60015481565b600060019054906101000a900460ff1680610a12575060008054906101000a900460ff16155b610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a489061153a565b60405180910390fd5b60008060019054906101000a900460ff161590508015610aa1576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8160028190555033600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006001819055508015610b125760008060016101000a81548160ff0219169083151502179055505b5050565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b828054610b6790611273565b90600052602060002090601f016020900481019282610b895760008555610bd0565b82601f10610ba257805160ff1916838001178555610bd0565b82800160010185558215610bd0579182015b82811115610bcf578251825591602001919060010190610bb4565b5b509050610bdd9190610be1565b5090565b5b80821115610bfa576000816000905550600101610be2565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c2581610c12565b8114610c3057600080fd5b50565b600081359050610c4281610c1c565b92915050565b600060208284031215610c5e57610c5d610c08565b5b6000610c6c84828501610c33565b91505092915050565b610c7e81610c12565b82525050565b6000602082019050610c996000830184610c75565b92915050565b610ca881610c12565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cd982610cae565b9050919050565b610ce981610cce565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d29578082015181840152602081019050610d0e565b83811115610d38576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d5a82610cef565b610d648185610cfa565b9350610d74818560208601610d0b565b610d7d81610d3e565b840191505092915050565b600060a083016000830151610da06000860182610c9f565b506020830151610db36020860182610ce0565b5060408301518482036040860152610dcb8282610d4f565b91505060608301518482036060860152610de58282610d4f565b91505060808301518482036080860152610dff8282610d4f565b9150508091505092915050565b60006020820190508181036000830152610e268184610d88565b905092915050565b610e3781610cce565b82525050565b6000602082019050610e526000830184610e2e565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610e9a82610d3e565b810181811067ffffffffffffffff82111715610eb957610eb8610e62565b5b80604052505050565b6000610ecc610bfe565b9050610ed88282610e91565b919050565b600067ffffffffffffffff821115610ef857610ef7610e62565b5b610f0182610d3e565b9050602081019050919050565b82818337600083830152505050565b6000610f30610f2b84610edd565b610ec2565b905082815260208101848484011115610f4c57610f4b610e5d565b5b610f57848285610f0e565b509392505050565b600082601f830112610f7457610f73610e58565b5b8135610f84848260208601610f1d565b91505092915050565b60008060008060808587031215610fa757610fa6610c08565b5b6000610fb587828801610c33565b945050602085013567ffffffffffffffff811115610fd657610fd5610c0d565b5b610fe287828801610f5f565b935050604085013567ffffffffffffffff81111561100357611002610c0d565b5b61100f87828801610f5f565b925050606085013567ffffffffffffffff8111156110305761102f610c0d565b5b61103c87828801610f5f565b91505092959194509250565b60008060006060848603121561106157611060610c08565b5b600084013567ffffffffffffffff81111561107f5761107e610c0d565b5b61108b86828701610f5f565b935050602084013567ffffffffffffffff8111156110ac576110ab610c0d565b5b6110b886828701610f5f565b925050604084013567ffffffffffffffff8111156110d9576110d8610c0d565b5b6110e586828701610f5f565b9150509250925092565b600082825260208201905092915050565b7f4f6e6c79206f776e657200000000000000000000000000000000000000000000600082015250565b6000611136600a836110ef565b915061114182611100565b602082019050919050565b6000602082019050818103600083015261116581611129565b9050919050565b7f416c726561647920766572696669656400000000000000000000000000000000600082015250565b60006111a26010836110ef565b91506111ad8261116c565b602082019050919050565b600060208201905081810360008301526111d181611195565b9050919050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b600061120e6011836110ef565b9150611219826111d8565b602082019050919050565b6000602082019050818103600083015261123d81611201565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061128b57607f821691505b6020821081141561129f5761129e611244565b5b50919050565b60006112b082610cef565b6112ba81856110ef565b93506112ca818560208601610d0b565b6112d381610d3e565b840191505092915050565b600060a0820190506112f36000830188610c75565b6113006020830187610e2e565b818103604083015261131281866112a5565b9050818103606083015261132681856112a5565b9050818103608083015261133a81846112a5565b90509695505050505050565b60008190508160005260206000209050919050565b6000815461136881611273565b61137281866110ef565b9450600182166000811461138d576001811461139f576113d2565b60ff19831686526020860193506113d2565b6113a885611346565b60005b838110156113ca578154818901526001820191506020810190506113ab565b808801955050505b50505092915050565b600060a0820190506113f06000830188610c75565b6113fd6020830187610e2e565b818103604083015261140f818661135b565b90508181036060830152611423818561135b565b90508181036080830152611437818461135b565b90509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061147d82610c12565b915061148883610c12565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114bd576114bc611443565b5b828201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000611524602e836110ef565b915061152f826114c8565b604082019050919050565b6000602082019050818103600083015261155381611517565b905091905056fea26469706673582212207fdcb8b9eefda23ea9e1d859469724ca560f7a8d8f5f57bd9378cfd6b0506b5664736f6c63430008090033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x86 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x145 JUMPI DUP1 PUSH4 0xAB444F28 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0xE73173A4 EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0xF9A6CBAE EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0xFE4B84DF EQ PUSH2 0x1E0 JUMPI PUSH2 0x86 JUMP JUMPDEST DUP1 PUSH4 0x1805D79F EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0x5CADD4A9 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0x7BA13680 EQ PUSH2 0xDD JUMPI DUP1 PUSH4 0x887E4B86 EQ PUSH2 0x108 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAD SWAP2 SWAP1 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x209 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x366 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x48A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFF SWAP2 SWAP1 PUSH2 0xC84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x114 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12A SWAP2 SWAP1 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x490 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13C SWAP2 SWAP1 PUSH2 0xE0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x151 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15A PUSH2 0x6E0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0xE3D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x197 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x192 SWAP2 SWAP1 PUSH2 0xF8D JUMP JUMPDEST PUSH2 0x706 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AE SWAP2 SWAP1 PUSH2 0x1048 JUMP JUMPDEST PUSH2 0x864 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CA PUSH2 0x9E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D7 SWAP2 SWAP1 PUSH2 0xC84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x207 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x202 SWAP2 SWAP1 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x9EC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x299 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x290 SWAP1 PUSH2 0x114C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x8 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x300 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F7 SWAP1 PUSH2 0x11B8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x8 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x19C567786DBC11AD5299760AD5F30BD149748AB79FAFC96892EC5C0B0B72B735 DUP2 PUSH1 0x40 MLOAD PUSH2 0x35B SWAP2 SWAP1 PUSH2 0xC84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x407 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3FE SWAP1 PUSH2 0x1224 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x429E5A8F4E1289616A7CA758E14BD7070BBDB21D11F443824C6738D41B4432C2 DUP2 PUSH1 0x40 MLOAD PUSH2 0x436 SWAP2 SWAP1 PUSH2 0xC84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x2 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x486 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x498 PUSH2 0xB16 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x516 SWAP1 PUSH2 0x1273 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x542 SWAP1 PUSH2 0x1273 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x58F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x564 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x58F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x572 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x5B7 SWAP1 PUSH2 0x1273 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5E3 SWAP1 PUSH2 0x1273 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x630 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x605 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x630 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x613 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x658 SWAP1 PUSH2 0x1273 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x684 SWAP1 PUSH2 0x1273 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6D1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6A6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6D1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6B4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x79E SWAP1 PUSH2 0x1224 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x4 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x7CE SWAP3 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST POP DUP2 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x7F6 SWAP3 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST POP DUP1 PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x81E SWAP3 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST POP PUSH32 0xFD025D83852F29D01B58FD4B19D8CFE0E12AF0EE9F31A7E273EA765CD4DD8620 DUP5 CALLER DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x856 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x12DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x3 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x4 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x8E1 SWAP3 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x90B SWAP3 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x935 SWAP3 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x7 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x54362B36D34EFDDA9F90402E88C73FD5B6D780EA5A94052317E4664B31AACC38 PUSH1 0x1 SLOAD CALLER PUSH1 0x4 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x9C5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x13DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH2 0x9DB SWAP2 SWAP1 PUSH2 0x1472 JUMP JUMPDEST PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0xA12 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0xA51 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA48 SWAP1 PUSH2 0x153A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0xAA1 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST DUP2 PUSH1 0x2 DUP2 SWAP1 SSTORE POP CALLER PUSH1 0x0 PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0xB12 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0xB67 SWAP1 PUSH2 0x1273 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0xB89 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0xBD0 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0xBA2 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xBD0 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xBD0 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xBCF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xBB4 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xBDD SWAP2 SWAP1 PUSH2 0xBE1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xBFA JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0xBE2 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC25 DUP2 PUSH2 0xC12 JUMP JUMPDEST DUP2 EQ PUSH2 0xC30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC42 DUP2 PUSH2 0xC1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC5E JUMPI PUSH2 0xC5D PUSH2 0xC08 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC6C DUP5 DUP3 DUP6 ADD PUSH2 0xC33 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC7E DUP2 PUSH2 0xC12 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC99 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC75 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCA8 DUP2 PUSH2 0xC12 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD9 DUP3 PUSH2 0xCAE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE9 DUP2 PUSH2 0xCCE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD29 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD0E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xD38 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD5A DUP3 PUSH2 0xCEF JUMP JUMPDEST PUSH2 0xD64 DUP2 DUP6 PUSH2 0xCFA JUMP JUMPDEST SWAP4 POP PUSH2 0xD74 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD0B JUMP JUMPDEST PUSH2 0xD7D DUP2 PUSH2 0xD3E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0xDA0 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0xC9F JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0xDB3 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xCE0 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xDCB DUP3 DUP3 PUSH2 0xD4F JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0xDE5 DUP3 DUP3 PUSH2 0xD4F JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0xDFF DUP3 DUP3 PUSH2 0xD4F JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE26 DUP2 DUP5 PUSH2 0xD88 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE37 DUP2 PUSH2 0xCCE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE52 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE2E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xE9A DUP3 PUSH2 0xD3E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xEB9 JUMPI PUSH2 0xEB8 PUSH2 0xE62 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xECC PUSH2 0xBFE JUMP JUMPDEST SWAP1 POP PUSH2 0xED8 DUP3 DUP3 PUSH2 0xE91 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xEF8 JUMPI PUSH2 0xEF7 PUSH2 0xE62 JUMP JUMPDEST JUMPDEST PUSH2 0xF01 DUP3 PUSH2 0xD3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH2 0xF2B DUP5 PUSH2 0xEDD JUMP JUMPDEST PUSH2 0xEC2 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xF4C JUMPI PUSH2 0xF4B PUSH2 0xE5D JUMP JUMPDEST JUMPDEST PUSH2 0xF57 DUP5 DUP3 DUP6 PUSH2 0xF0E JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF74 JUMPI PUSH2 0xF73 PUSH2 0xE58 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xF84 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xF1D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xFA7 JUMPI PUSH2 0xFA6 PUSH2 0xC08 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFB5 DUP8 DUP3 DUP9 ADD PUSH2 0xC33 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFD6 JUMPI PUSH2 0xFD5 PUSH2 0xC0D JUMP JUMPDEST JUMPDEST PUSH2 0xFE2 DUP8 DUP3 DUP9 ADD PUSH2 0xF5F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1003 JUMPI PUSH2 0x1002 PUSH2 0xC0D JUMP JUMPDEST JUMPDEST PUSH2 0x100F DUP8 DUP3 DUP9 ADD PUSH2 0xF5F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1030 JUMPI PUSH2 0x102F PUSH2 0xC0D JUMP JUMPDEST JUMPDEST PUSH2 0x103C DUP8 DUP3 DUP9 ADD PUSH2 0xF5F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1061 JUMPI PUSH2 0x1060 PUSH2 0xC08 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x107F JUMPI PUSH2 0x107E PUSH2 0xC0D JUMP JUMPDEST JUMPDEST PUSH2 0x108B DUP7 DUP3 DUP8 ADD PUSH2 0xF5F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10AC JUMPI PUSH2 0x10AB PUSH2 0xC0D JUMP JUMPDEST JUMPDEST PUSH2 0x10B8 DUP7 DUP3 DUP8 ADD PUSH2 0xF5F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10D9 JUMPI PUSH2 0x10D8 PUSH2 0xC0D JUMP JUMPDEST JUMPDEST PUSH2 0x10E5 DUP7 DUP3 DUP8 ADD PUSH2 0xF5F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E657200000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1136 PUSH1 0xA DUP4 PUSH2 0x10EF JUMP JUMPDEST SWAP2 POP PUSH2 0x1141 DUP3 PUSH2 0x1100 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1165 DUP2 PUSH2 0x1129 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416C726561647920766572696669656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11A2 PUSH1 0x10 DUP4 PUSH2 0x10EF JUMP JUMPDEST SWAP2 POP PUSH2 0x11AD DUP3 PUSH2 0x116C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11D1 DUP2 PUSH2 0x1195 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F662064617070000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120E PUSH1 0x11 DUP4 PUSH2 0x10EF JUMP JUMPDEST SWAP2 POP PUSH2 0x1219 DUP3 PUSH2 0x11D8 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x123D DUP2 PUSH2 0x1201 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x128B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x129F JUMPI PUSH2 0x129E PUSH2 0x1244 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B0 DUP3 PUSH2 0xCEF JUMP JUMPDEST PUSH2 0x12BA DUP2 DUP6 PUSH2 0x10EF JUMP JUMPDEST SWAP4 POP PUSH2 0x12CA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD0B JUMP JUMPDEST PUSH2 0x12D3 DUP2 PUSH2 0xD3E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x12F3 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0xC75 JUMP JUMPDEST PUSH2 0x1300 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xE2E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1312 DUP2 DUP7 PUSH2 0x12A5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1326 DUP2 DUP6 PUSH2 0x12A5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x133A DUP2 DUP5 PUSH2 0x12A5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x1368 DUP2 PUSH2 0x1273 JUMP JUMPDEST PUSH2 0x1372 DUP2 DUP7 PUSH2 0x10EF JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x138D JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x139F JUMPI PUSH2 0x13D2 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP PUSH2 0x13D2 JUMP JUMPDEST PUSH2 0x13A8 DUP6 PUSH2 0x1346 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x13CA JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x13AB JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x13F0 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0xC75 JUMP JUMPDEST PUSH2 0x13FD PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xE2E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x140F DUP2 DUP7 PUSH2 0x135B JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1423 DUP2 DUP6 PUSH2 0x135B JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1437 DUP2 DUP5 PUSH2 0x135B JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x147D DUP3 PUSH2 0xC12 JUMP JUMPDEST SWAP2 POP PUSH2 0x1488 DUP4 PUSH2 0xC12 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x14BD JUMPI PUSH2 0x14BC PUSH2 0x1443 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1524 PUSH1 0x2E DUP4 PUSH2 0x10EF JUMP JUMPDEST SWAP2 POP PUSH2 0x152F DUP3 PUSH2 0x14C8 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1553 DUP2 PUSH2 0x1517 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0xDCB8B9EEFDA23EA9E1D859469724CA560F7A8D8F5F57BD9378CFD6B0506B5664 PUSH20 0x6F6C634300080900330000000000000000000000 ", - "sourceMap": "139:2772:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2715:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2326:383;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;233:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2140:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;181:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1740:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1218:516;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;207:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;872:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2715:193;828:5;;;;;;;;;;;814:19;;:10;:19;;;805:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;2807:5:::1;2784:28;;:11;:19;2796:6;2784:19;;;;;;;;;;;;;;;;;;;;;:28;;;2776:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2865:4;2843:11;:19;2855:6;2843:19;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2884:17;2894:6;2884:17;;;;;;:::i;:::-;;;;;;;;2715:193:::0;:::o;2326:383::-;2406:10;2385:31;;:9;:17;2395:6;2385:17;;;;;;;;;;;;;;;;;;;;;:31;;;2377:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;2633:18;2644:6;2633:18;;;;;;:::i;:::-;;;;;;;;2669:10;2661:28;;:41;2690:11;;2661:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2326:383;:::o;233:23::-;;;;:::o;2140:180::-;2196:10;;:::i;:::-;2225:88;;;;;;;;2229:6;2225:88;;;;2237:9;:17;2247:6;2237:17;;;;;;;;;;;;;;;;;;;;;2225:88;;;;;;2256:7;:15;2264:6;2256:15;;;;;;;;;;;2225:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2273:11;:19;2285:6;2273:19;;;;;;;;;;;2225:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2294:10;:18;2305:6;2294:18;;;;;;;;;;;2225:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2218:95;;2140:180;;;:::o;181:20::-;;;;;;;;;;;;;:::o;1740:394::-;1896:10;1875:31;;:9;:17;1885:6;1875:17;;;;;;;;;;;;;;;;;;;;;:31;;;1867:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;1956:5;1938:7;:15;1946:6;1938:15;;;;;;;;;;;:23;;;;;;;;;;;;:::i;:::-;;1993:9;1971:11;:19;1983:6;1971:19;;;;;;;;;;;:31;;;;;;;;;;;;:::i;:::-;;2033:15;2012:10;:18;2023:6;2012:18;;;;;;;;;;;:36;;;;;;;;;;;;:::i;:::-;;2063:64;2073:6;2081:10;2093:5;2100:9;2111:15;2063:64;;;;;;;;;;:::i;:::-;;;;;;;;1740:394;;;;:::o;1218:516::-;1433:10;1414:9;:16;1424:5;;1414:16;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1470:5;1453:7;:14;1461:5;;1453:14;;;;;;;;;;;:22;;;;;;;;;;;;:::i;:::-;;1506:9;1485:11;:18;1497:5;;1485:18;;;;;;;;;;;:30;;;;;;;;;;;;:::i;:::-;;1545:15;1525:10;:17;1536:5;;1525:17;;;;;;;;;;;:35;;;;;;;;;;;;:::i;:::-;;1590:15;1570:10;:17;1581:5;;1570:17;;;;;;;;;;;:35;;;;1620:80;1627:5;;1634:10;1646:7;:14;1654:5;;1646:14;;;;;;;;;;;1662:11;:18;1674:5;;1662:18;;;;;;;;;;;1682:10;:17;1693:5;;1682:17;;;;;;;;;;;1620:80;;;;;;;;;;:::i;:::-;;;;;;;;1726:1;1718:5;;:9;;;;:::i;:::-;1710:5;:17;;;;1218:516;;;:::o;207:20::-;;;;:::o;872:191::-;2030:13:0;;;;;;;;;;;:30;;;;2048:12;;;;;;;;;;2047:13;2030:30;2022:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;2122:19;2145:13;;;;;;;;;;;2144:14;2122:36;;2172:14;2168:98;;;2218:4;2202:13;;:20;;;;;;;;;;;;;;;;;;2251:4;2236:12;;:19;;;;;;;;;;;;;;;;;;2168:98;954:12:1::1;940:11;:26;;;;1027:10;1019:5;;:18;;;;;;;;;;;;;;;;;;1055:1;1047:5;:9;;;;2292:14:0::0;2288:66;;;2338:5;2322:13;;:21;;;;;;;;;;;;;;;;;;2288:66;2012:348;872:191:1;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:3:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:108::-;1454:24;1472:5;1454:24;:::i;:::-;1449:3;1442:37;1377:108;;:::o;1491:126::-;1528:7;1568:42;1561:5;1557:54;1546:65;;1491:126;;;:::o;1623:96::-;1660:7;1689:24;1707:5;1689:24;:::i;:::-;1678:35;;1623:96;;;:::o;1725:108::-;1802:24;1820:5;1802:24;:::i;:::-;1797:3;1790:37;1725:108;;:::o;1839:99::-;1891:6;1925:5;1919:12;1909:22;;1839:99;;;:::o;1944:159::-;2018:11;2052:6;2047:3;2040:19;2092:4;2087:3;2083:14;2068:29;;1944:159;;;;:::o;2109:307::-;2177:1;2187:113;2201:6;2198:1;2195:13;2187:113;;;2286:1;2281:3;2277:11;2271:18;2267:1;2262:3;2258:11;2251:39;2223:2;2220:1;2216:10;2211:15;;2187:113;;;2318:6;2315:1;2312:13;2309:101;;;2398:1;2389:6;2384:3;2380:16;2373:27;2309:101;2158:258;2109:307;;;:::o;2422:102::-;2463:6;2514:2;2510:7;2505:2;2498:5;2494:14;2490:28;2480:38;;2422:102;;;:::o;2530:344::-;2608:3;2636:39;2669:5;2636:39;:::i;:::-;2691:61;2745:6;2740:3;2691:61;:::i;:::-;2684:68;;2761:52;2806:6;2801:3;2794:4;2787:5;2783:16;2761:52;:::i;:::-;2838:29;2860:6;2838:29;:::i;:::-;2833:3;2829:39;2822:46;;2612:262;2530:344;;;;:::o;2932:1281::-;3041:3;3077:4;3072:3;3068:14;3165:4;3158:5;3154:16;3148:23;3184:63;3241:4;3236:3;3232:14;3218:12;3184:63;:::i;:::-;3092:165;3343:4;3336:5;3332:16;3326:23;3362:63;3419:4;3414:3;3410:14;3396:12;3362:63;:::i;:::-;3267:168;3520:4;3513:5;3509:16;3503:23;3573:3;3567:4;3563:14;3556:4;3551:3;3547:14;3540:38;3599:73;3667:4;3653:12;3599:73;:::i;:::-;3591:81;;3445:238;3772:4;3765:5;3761:16;3755:23;3825:3;3819:4;3815:14;3808:4;3803:3;3799:14;3792:38;3851:73;3919:4;3905:12;3851:73;:::i;:::-;3843:81;;3693:242;4023:4;4016:5;4012:16;4006:23;4076:3;4070:4;4066:14;4059:4;4054:3;4050:14;4043:38;4102:73;4170:4;4156:12;4102:73;:::i;:::-;4094:81;;3945:241;4203:4;4196:11;;3046:1167;2932:1281;;;;:::o;4219:353::-;4352:4;4390:2;4379:9;4375:18;4367:26;;4439:9;4433:4;4429:20;4425:1;4414:9;4410:17;4403:47;4467:98;4560:4;4551:6;4467:98;:::i;:::-;4459:106;;4219:353;;;;:::o;4578:118::-;4665:24;4683:5;4665:24;:::i;:::-;4660:3;4653:37;4578:118;;:::o;4702:222::-;4795:4;4833:2;4822:9;4818:18;4810:26;;4846:71;4914:1;4903:9;4899:17;4890:6;4846:71;:::i;:::-;4702:222;;;;:::o;4930:117::-;5039:1;5036;5029:12;5053:117;5162:1;5159;5152:12;5176:180;5224:77;5221:1;5214:88;5321:4;5318:1;5311:15;5345:4;5342:1;5335:15;5362:281;5445:27;5467:4;5445:27;:::i;:::-;5437:6;5433:40;5575:6;5563:10;5560:22;5539:18;5527:10;5524:34;5521:62;5518:88;;;5586:18;;:::i;:::-;5518:88;5626:10;5622:2;5615:22;5405:238;5362:281;;:::o;5649:129::-;5683:6;5710:20;;:::i;:::-;5700:30;;5739:33;5767:4;5759:6;5739:33;:::i;:::-;5649:129;;;:::o;5784:308::-;5846:4;5936:18;5928:6;5925:30;5922:56;;;5958:18;;:::i;:::-;5922:56;5996:29;6018:6;5996:29;:::i;:::-;5988:37;;6080:4;6074;6070:15;6062:23;;5784:308;;;:::o;6098:154::-;6182:6;6177:3;6172;6159:30;6244:1;6235:6;6230:3;6226:16;6219:27;6098:154;;;:::o;6258:412::-;6336:5;6361:66;6377:49;6419:6;6377:49;:::i;:::-;6361:66;:::i;:::-;6352:75;;6450:6;6443:5;6436:21;6488:4;6481:5;6477:16;6526:3;6517:6;6512:3;6508:16;6505:25;6502:112;;;6533:79;;:::i;:::-;6502:112;6623:41;6657:6;6652:3;6647;6623:41;:::i;:::-;6342:328;6258:412;;;;;:::o;6690:340::-;6746:5;6795:3;6788:4;6780:6;6776:17;6772:27;6762:122;;6803:79;;:::i;:::-;6762:122;6920:6;6907:20;6945:79;7020:3;7012:6;7005:4;6997:6;6993:17;6945:79;:::i;:::-;6936:88;;6752:278;6690:340;;;;:::o;7036:1305::-;7152:6;7160;7168;7176;7225:3;7213:9;7204:7;7200:23;7196:33;7193:120;;;7232:79;;:::i;:::-;7193:120;7352:1;7377:53;7422:7;7413:6;7402:9;7398:22;7377:53;:::i;:::-;7367:63;;7323:117;7507:2;7496:9;7492:18;7479:32;7538:18;7530:6;7527:30;7524:117;;;7560:79;;:::i;:::-;7524:117;7665:63;7720:7;7711:6;7700:9;7696:22;7665:63;:::i;:::-;7655:73;;7450:288;7805:2;7794:9;7790:18;7777:32;7836:18;7828:6;7825:30;7822:117;;;7858:79;;:::i;:::-;7822:117;7963:63;8018:7;8009:6;7998:9;7994:22;7963:63;:::i;:::-;7953:73;;7748:288;8103:2;8092:9;8088:18;8075:32;8134:18;8126:6;8123:30;8120:117;;;8156:79;;:::i;:::-;8120:117;8261:63;8316:7;8307:6;8296:9;8292:22;8261:63;:::i;:::-;8251:73;;8046:288;7036:1305;;;;;;;:::o;8347:1159::-;8454:6;8462;8470;8519:2;8507:9;8498:7;8494:23;8490:32;8487:119;;;8525:79;;:::i;:::-;8487:119;8673:1;8662:9;8658:17;8645:31;8703:18;8695:6;8692:30;8689:117;;;8725:79;;:::i;:::-;8689:117;8830:63;8885:7;8876:6;8865:9;8861:22;8830:63;:::i;:::-;8820:73;;8616:287;8970:2;8959:9;8955:18;8942:32;9001:18;8993:6;8990:30;8987:117;;;9023:79;;:::i;:::-;8987:117;9128:63;9183:7;9174:6;9163:9;9159:22;9128:63;:::i;:::-;9118:73;;8913:288;9268:2;9257:9;9253:18;9240:32;9299:18;9291:6;9288:30;9285:117;;;9321:79;;:::i;:::-;9285:117;9426:63;9481:7;9472:6;9461:9;9457:22;9426:63;:::i;:::-;9416:73;;9211:288;8347:1159;;;;;:::o;9512:169::-;9596:11;9630:6;9625:3;9618:19;9670:4;9665:3;9661:14;9646:29;;9512:169;;;;:::o;9687:160::-;9827:12;9823:1;9815:6;9811:14;9804:36;9687:160;:::o;9853:366::-;9995:3;10016:67;10080:2;10075:3;10016:67;:::i;:::-;10009:74;;10092:93;10181:3;10092:93;:::i;:::-;10210:2;10205:3;10201:12;10194:19;;9853:366;;;:::o;10225:419::-;10391:4;10429:2;10418:9;10414:18;10406:26;;10478:9;10472:4;10468:20;10464:1;10453:9;10449:17;10442:47;10506:131;10632:4;10506:131;:::i;:::-;10498:139;;10225:419;;;:::o;10650:166::-;10790:18;10786:1;10778:6;10774:14;10767:42;10650:166;:::o;10822:366::-;10964:3;10985:67;11049:2;11044:3;10985:67;:::i;:::-;10978:74;;11061:93;11150:3;11061:93;:::i;:::-;11179:2;11174:3;11170:12;11163:19;;10822:366;;;:::o;11194:419::-;11360:4;11398:2;11387:9;11383:18;11375:26;;11447:9;11441:4;11437:20;11433:1;11422:9;11418:17;11411:47;11475:131;11601:4;11475:131;:::i;:::-;11467:139;;11194:419;;;:::o;11619:167::-;11759:19;11755:1;11747:6;11743:14;11736:43;11619:167;:::o;11792:366::-;11934:3;11955:67;12019:2;12014:3;11955:67;:::i;:::-;11948:74;;12031:93;12120:3;12031:93;:::i;:::-;12149:2;12144:3;12140:12;12133:19;;11792:366;;;:::o;12164:419::-;12330:4;12368:2;12357:9;12353:18;12345:26;;12417:9;12411:4;12407:20;12403:1;12392:9;12388:17;12381:47;12445:131;12571:4;12445:131;:::i;:::-;12437:139;;12164:419;;;:::o;12589:180::-;12637:77;12634:1;12627:88;12734:4;12731:1;12724:15;12758:4;12755:1;12748:15;12775:320;12819:6;12856:1;12850:4;12846:12;12836:22;;12903:1;12897:4;12893:12;12924:18;12914:81;;12980:4;12972:6;12968:17;12958:27;;12914:81;13042:2;13034:6;13031:14;13011:18;13008:38;13005:84;;;13061:18;;:::i;:::-;13005:84;12826:269;12775:320;;;:::o;13101:364::-;13189:3;13217:39;13250:5;13217:39;:::i;:::-;13272:71;13336:6;13331:3;13272:71;:::i;:::-;13265:78;;13352:52;13397:6;13392:3;13385:4;13378:5;13374:16;13352:52;:::i;:::-;13429:29;13451:6;13429:29;:::i;:::-;13424:3;13420:39;13413:46;;13193:272;13101:364;;;;:::o;13471:937::-;13736:4;13774:3;13763:9;13759:19;13751:27;;13788:71;13856:1;13845:9;13841:17;13832:6;13788:71;:::i;:::-;13869:72;13937:2;13926:9;13922:18;13913:6;13869:72;:::i;:::-;13988:9;13982:4;13978:20;13973:2;13962:9;13958:18;13951:48;14016:78;14089:4;14080:6;14016:78;:::i;:::-;14008:86;;14141:9;14135:4;14131:20;14126:2;14115:9;14111:18;14104:48;14169:78;14242:4;14233:6;14169:78;:::i;:::-;14161:86;;14295:9;14289:4;14285:20;14279:3;14268:9;14264:19;14257:49;14323:78;14396:4;14387:6;14323:78;:::i;:::-;14315:86;;13471:937;;;;;;;;:::o;14414:141::-;14463:4;14486:3;14478:11;;14509:3;14506:1;14499:14;14543:4;14540:1;14530:18;14522:26;;14414:141;;;:::o;14585:802::-;14670:3;14707:5;14701:12;14736:36;14762:9;14736:36;:::i;:::-;14788:71;14852:6;14847:3;14788:71;:::i;:::-;14781:78;;14890:1;14879:9;14875:17;14906:1;14901:135;;;;15050:1;15045:336;;;;14868:513;;14901:135;14985:4;14981:9;14970;14966:25;14961:3;14954:38;15021:4;15016:3;15012:14;15005:21;;14901:135;;15045:336;15112:38;15144:5;15112:38;:::i;:::-;15172:1;15186:154;15200:6;15197:1;15194:13;15186:154;;;15274:7;15268:14;15264:1;15259:3;15255:11;15248:35;15324:1;15315:7;15311:15;15300:26;;15222:4;15219:1;15215:12;15210:17;;15186:154;;;15369:1;15364:3;15360:11;15353:18;;15052:329;;14868:513;;14674:713;;14585:802;;;;:::o;15393:919::-;15649:4;15687:3;15676:9;15672:19;15664:27;;15701:71;15769:1;15758:9;15754:17;15745:6;15701:71;:::i;:::-;15782:72;15850:2;15839:9;15835:18;15826:6;15782:72;:::i;:::-;15901:9;15895:4;15891:20;15886:2;15875:9;15871:18;15864:48;15929:75;15999:4;15990:6;15929:75;:::i;:::-;15921:83;;16051:9;16045:4;16041:20;16036:2;16025:9;16021:18;16014:48;16079:75;16149:4;16140:6;16079:75;:::i;:::-;16071:83;;16202:9;16196:4;16192:20;16186:3;16175:9;16171:19;16164:49;16230:75;16300:4;16291:6;16230:75;:::i;:::-;16222:83;;15393:919;;;;;;;;:::o;16318:180::-;16366:77;16363:1;16356:88;16463:4;16460:1;16453:15;16487:4;16484:1;16477:15;16504:305;16544:3;16563:20;16581:1;16563:20;:::i;:::-;16558:25;;16597:20;16615:1;16597:20;:::i;:::-;16592:25;;16751:1;16683:66;16679:74;16676:1;16673:81;16670:107;;;16757:18;;:::i;:::-;16670:107;16801:1;16798;16794:9;16787:16;;16504:305;;;;:::o;16815:233::-;16955:34;16951:1;16943:6;16939:14;16932:58;17024:16;17019:2;17011:6;17007:15;17000:41;16815:233;:::o;17054:366::-;17196:3;17217:67;17281:2;17276:3;17217:67;:::i;:::-;17210:74;;17293:93;17382:3;17293:93;:::i;:::-;17411:2;17406:3;17402:12;17395:19;;17054:366;;;:::o;17426:419::-;17592:4;17630:2;17619:9;17615:18;17607:26;;17679:9;17673:4;17669:20;17665:1;17654:9;17650:17;17643:47;17707:131;17833:4;17707:131;:::i;:::-;17699:139;;17426:419;;;:::o" - }, - "methodIdentifiers": { - "amountToPay()": "7ba13680", - "appID()": "f9a6cbae", - "getDAppData(uint256)": "887e4b86", - "initialize(uint256)": "fe4b84df", - "owner()": "8da5cb5b", - "releaseDApp(uint256)": "5cadd4a9", - "submitDApp(string,string,string)": "e73173a4", - "updateDApp(uint256,string,string,string)": "ab444f28", - "verifyDApp(uint256)": "1805d79f" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"NewApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"}],\"name\":\"ReleaseApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"UpdateApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"}],\"name\":\"VerifyApp\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"amountToPay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"appID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"getDAppData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"internalType\":\"struct DAppStore.App\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountToPay\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"releaseDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"submitDApp\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"updateDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"verifyDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DAppStore.sol\":\"DAppStore\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x6287586f5e4a103c89d4dda41406136cdf283cc625bd1ebfdf1468aae5bfe449\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30e2e913292e86a9bce50d51882b23ef57ae4c811003ec96cf39b1781f68b202\",\"dweb:/ipfs/QmUXqjyiAHbEMJ4zLfaduWYuVwp1HozqVhtChe9VfdpjoV\"]},\"contracts/DAppStore.sol\":{\"keccak256\":\"0xeefd328ec86e0211c1db7511a2278a14f9beb9a660607039b269571e96d84655\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://90e95bf85e4baf4609626c7b1d70e51739378ea3a407d081527c66edc7a4fe74\",\"dweb:/ipfs/QmRngCf9T1AAEaCx4yocEDFi4pv5DUsNY5CmoKsGagG9eM\"]}},\"version\":1}" - } - }, - "contracts/NotUpgradableStore.sol": { - "NotUpgradableStore": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_amountToPay", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "appID", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "appOwner", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "appName", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "appIPFSHash", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "appAddData", - "type": "string" - } - ], - "name": "NewApp", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "appID", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "appOwner", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "appName", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "appIPFSHash", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "appAddData", - "type": "string" - } - ], - "name": "UpdateApp", - "type": "event" - }, - { - "inputs": [], - "name": "amountToPay", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "appID", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_appID", - "type": "uint256" - } - ], - "name": "getDAppData", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "appID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "appOwner", - "type": "address" - }, - { - "internalType": "string", - "name": "appName", - "type": "string" - }, - { - "internalType": "string", - "name": "appIPFSHash", - "type": "string" - }, - { - "internalType": "string", - "name": "appAddData", - "type": "string" - } - ], - "internalType": "struct NotUpgradableStore.App", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_appID", - "type": "uint256" - } - ], - "name": "releaseDApp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_name", - "type": "string" - }, - { - "internalType": "string", - "name": "_ipfsHash", - "type": "string" - }, - { - "internalType": "string", - "name": "_additionalData", - "type": "string" - } - ], - "name": "submitDApp", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_appID", - "type": "uint256" - }, - { - "internalType": "string", - "name": "_name", - "type": "string" - }, - { - "internalType": "string", - "name": "_ipfsHash", - "type": "string" - }, - { - "internalType": "string", - "name": "_additionalData", - "type": "string" - } - ], - "name": "updateDApp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_433": { - "entryPoint": null, - "id": 433, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_decode_t_uint256_fromMemory": { - "entryPoint": 182, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256_fromMemory": { - "entryPoint": 205, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 146, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 141, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "validator_revert_t_uint256": { - "entryPoint": 156, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:1048:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "47:35:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "57:19:3", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "73:2:3", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "67:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "67:9:3" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "57:6:3" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "40:6:3", - "type": "" - } - ], - "src": "7:75:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "177:28:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "194:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "197:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "187:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "187:12:3" - }, - "nodeType": "YulExpressionStatement", - "src": "187:12:3" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulFunctionDefinition", - "src": "88:117:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "300:28:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "317:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "320:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "310:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "310:12:3" - }, - "nodeType": "YulExpressionStatement", - "src": "310:12:3" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulFunctionDefinition", - "src": "211:117:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "379:32:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "389:16:3", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "400:5:3" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "389:7:3" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "361:5:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "371:7:3", - "type": "" - } - ], - "src": "334:77:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "460:79:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "517:16:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "526:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "529:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "519:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "519:12:3" - }, - "nodeType": "YulExpressionStatement", - "src": "519:12:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "483:5:3" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "508:5:3" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "490:17:3" - }, - "nodeType": "YulFunctionCall", - "src": "490:24:3" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "480:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "480:35:3" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "473:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "473:43:3" - }, - "nodeType": "YulIf", - "src": "470:63:3" - } - ] - }, - "name": "validator_revert_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "453:5:3", - "type": "" - } - ], - "src": "417:122:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "608:80:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "618:22:3", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "633:6:3" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "627:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "627:13:3" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "618:5:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "676:5:3" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nodeType": "YulIdentifier", - "src": "649:26:3" - }, - "nodeType": "YulFunctionCall", - "src": "649:33:3" - }, - "nodeType": "YulExpressionStatement", - "src": "649:33:3" - } - ] - }, - "name": "abi_decode_t_uint256_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "586:6:3", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "594:3:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "602:5:3", - "type": "" - } - ], - "src": "545:143:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "771:274:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "817:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "819:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "819:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "819:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "792:7:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "801:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "788:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "788:23:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "813:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "784:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "784:32:3" - }, - "nodeType": "YulIf", - "src": "781:119:3" - }, - { - "nodeType": "YulBlock", - "src": "910:128:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "925:15:3", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "939:1:3", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "929:6:3", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "954:74:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1000:9:3" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1011:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "996:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "996:22:3" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1020:7:3" - } - ], - "functionName": { - "name": "abi_decode_t_uint256_fromMemory", - "nodeType": "YulIdentifier", - "src": "964:31:3" - }, - "nodeType": "YulFunctionCall", - "src": "964:64:3" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "954:6:3" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "741:9:3", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "752:7:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "764:6:3", - "type": "" - } - ], - "src": "694:351:3" - } - ] - }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", - "id": 3, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b50604051620012b5380380620012b58339818101604052810190620000379190620000cd565b80600281905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060018190555050620000ff565b600080fd5b6000819050919050565b620000a78162000092565b8114620000b357600080fd5b50565b600081519050620000c7816200009c565b92915050565b600060208284031215620000e657620000e56200008d565b5b6000620000f684828501620000b6565b91505092915050565b6111a6806200010f6000396000f3fe6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b14610106578063ab444f2814610131578063e73173a41461015a578063f9a6cbae1461017657610070565b80635cadd4a9146100755780637ba136801461009e578063887e4b86146100c9575b600080fd5b34801561008157600080fd5b5061009c6004803603810190610097919061095c565b6101a1565b005b3480156100aa57600080fd5b506100b3610303565b6040516100c09190610998565b60405180910390f35b3480156100d557600080fd5b506100f060048036038101906100eb919061095c565b610309565b6040516100fd9190610b20565b60405180910390f35b34801561011257600080fd5b5061011b610559565b6040516101289190610b51565b60405180910390f35b34801561013d57600080fd5b5061015860048036038101906101539190610ca1565b61057d565b005b610174600480360381019061016f9190610d5c565b6106db565b005b34801561018257600080fd5b5061018b610824565b6040516101989190610998565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023990610e60565b60405180910390fd5b7f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc3881336004600085815260200190815260200160002060056000868152602001908152602001600020600660008781526020019081526020016000206040516102af959493929190610f76565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6002549081150290604051600060405180830381858888f193505050501580156102ff573d6000803e3d6000fd5b5050565b60025481565b61031161082a565b6040518060a001604052808381526020016003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160046000858152602001908152602001600020805461038f90610eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb90610eaf565b80156104085780601f106103dd57610100808354040283529160200191610408565b820191906000526020600020905b8154815290600101906020018083116103eb57829003601f168201915b5050505050815260200160056000858152602001908152602001600020805461043090610eaf565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90610eaf565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b505050505081526020016006600085815260200190815260200160002080546104d190610eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610eaf565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b50505050508152509050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166003600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461061e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061590610e60565b60405180910390fd5b8260046000868152602001908152602001600020908051906020019061064592919061086f565b508160056000868152602001908152602001600020908051906020019061066d92919061086f565b508060066000868152602001908152602001600020908051906020019061069592919061086f565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd862084338585856040516106cd959493929190611017565b60405180910390a150505050565b600254341461071f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610716906110cb565b60405180910390fd5b3360036000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006001548152602001908152602001600020908051906020019061079c92919061086f565b508160056000600154815260200190815260200160002090805190602001906107c692919061086f565b508060066000600154815260200190815260200160002090805190602001906107f092919061086f565b50426007600060015481526020019081526020016000208190555060018054610819919061111a565b600181905550505050565b60015481565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b82805461087b90610eaf565b90600052602060002090601f01602090048101928261089d57600085556108e4565b82601f106108b657805160ff19168380011785556108e4565b828001600101855582156108e4579182015b828111156108e35782518255916020019190600101906108c8565b5b5090506108f191906108f5565b5090565b5b8082111561090e5760008160009055506001016108f6565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61093981610926565b811461094457600080fd5b50565b60008135905061095681610930565b92915050565b6000602082840312156109725761097161091c565b5b600061098084828501610947565b91505092915050565b61099281610926565b82525050565b60006020820190506109ad6000830184610989565b92915050565b6109bc81610926565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109ed826109c2565b9050919050565b6109fd816109e2565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610a3d578082015181840152602081019050610a22565b83811115610a4c576000848401525b50505050565b6000601f19601f8301169050919050565b6000610a6e82610a03565b610a788185610a0e565b9350610a88818560208601610a1f565b610a9181610a52565b840191505092915050565b600060a083016000830151610ab460008601826109b3565b506020830151610ac760208601826109f4565b5060408301518482036040860152610adf8282610a63565b91505060608301518482036060860152610af98282610a63565b91505060808301518482036080860152610b138282610a63565b9150508091505092915050565b60006020820190508181036000830152610b3a8184610a9c565b905092915050565b610b4b816109e2565b82525050565b6000602082019050610b666000830184610b42565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610bae82610a52565b810181811067ffffffffffffffff82111715610bcd57610bcc610b76565b5b80604052505050565b6000610be0610912565b9050610bec8282610ba5565b919050565b600067ffffffffffffffff821115610c0c57610c0b610b76565b5b610c1582610a52565b9050602081019050919050565b82818337600083830152505050565b6000610c44610c3f84610bf1565b610bd6565b905082815260208101848484011115610c6057610c5f610b71565b5b610c6b848285610c22565b509392505050565b600082601f830112610c8857610c87610b6c565b5b8135610c98848260208601610c31565b91505092915050565b60008060008060808587031215610cbb57610cba61091c565b5b6000610cc987828801610947565b945050602085013567ffffffffffffffff811115610cea57610ce9610921565b5b610cf687828801610c73565b935050604085013567ffffffffffffffff811115610d1757610d16610921565b5b610d2387828801610c73565b925050606085013567ffffffffffffffff811115610d4457610d43610921565b5b610d5087828801610c73565b91505092959194509250565b600080600060608486031215610d7557610d7461091c565b5b600084013567ffffffffffffffff811115610d9357610d92610921565b5b610d9f86828701610c73565b935050602084013567ffffffffffffffff811115610dc057610dbf610921565b5b610dcc86828701610c73565b925050604084013567ffffffffffffffff811115610ded57610dec610921565b5b610df986828701610c73565b9150509250925092565b600082825260208201905092915050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000610e4a601183610e03565b9150610e5582610e14565b602082019050919050565b60006020820190508181036000830152610e7981610e3d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610ec757607f821691505b60208210811415610edb57610eda610e80565b5b50919050565b60008190508160005260206000209050919050565b60008154610f0381610eaf565b610f0d8186610e03565b94506001821660008114610f285760018114610f3a57610f6d565b60ff1983168652602086019350610f6d565b610f4385610ee1565b60005b83811015610f6557815481890152600182019150602081019050610f46565b808801955050505b50505092915050565b600060a082019050610f8b6000830188610989565b610f986020830187610b42565b8181036040830152610faa8186610ef6565b90508181036060830152610fbe8185610ef6565b90508181036080830152610fd28184610ef6565b90509695505050505050565b6000610fe982610a03565b610ff38185610e03565b9350611003818560208601610a1f565b61100c81610a52565b840191505092915050565b600060a08201905061102c6000830188610989565b6110396020830187610b42565b818103604083015261104b8186610fde565b9050818103606083015261105f8185610fde565b905081810360808301526110738184610fde565b90509695505050505050565b7f457468657220666f72206c6f636b757020726571756972656400000000000000600082015250565b60006110b5601983610e03565b91506110c08261107f565b602082019050919050565b600060208201905081810360008301526110e4816110a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061112582610926565b915061113083610926565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611165576111646110eb565b5b82820190509291505056fea26469706673582212205c17795542b2dc53e02fabbc4bfe1bbd5ec1c9f91c380af9fa9fb0f0fc3948c864736f6c63430008090033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x12B5 CODESIZE SUB DUP1 PUSH3 0x12B5 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0xCD JUMP JUMPDEST DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP PUSH3 0xFF JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xA7 DUP2 PUSH3 0x92 JUMP JUMPDEST DUP2 EQ PUSH3 0xB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0xC7 DUP2 PUSH3 0x9C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xE6 JUMPI PUSH3 0xE5 PUSH3 0x8D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0xF6 DUP5 DUP3 DUP6 ADD PUSH3 0xB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11A6 DUP1 PUSH3 0x10F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xAB444F28 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0xE73173A4 EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xF9A6CBAE EQ PUSH2 0x176 JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x5CADD4A9 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x7BA13680 EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0x887E4B86 EQ PUSH2 0xC9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1A1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x998 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEB SWAP2 SWAP1 PUSH2 0x95C JUMP JUMPDEST PUSH2 0x309 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFD SWAP2 SWAP1 PUSH2 0xB20 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x559 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x128 SWAP2 SWAP1 PUSH2 0xB51 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x158 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x153 SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH2 0x57D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x174 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16F SWAP2 SWAP1 PUSH2 0xD5C JUMP JUMPDEST PUSH2 0x6DB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x182 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x824 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x998 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x242 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x239 SWAP1 PUSH2 0xE60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x54362B36D34EFDDA9F90402E88C73FD5B6D780EA5A94052317E4664B31AACC38 DUP2 CALLER PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x2AF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x2 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x311 PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x38F SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3BB SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x408 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x408 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x430 SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x45C SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4A9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x47E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4A9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x48C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x61E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x615 SWAP1 PUSH2 0xE60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x4 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x645 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP2 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x66D SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP1 PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x695 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP PUSH32 0xFD025D83852F29D01B58FD4B19D8CFE0E12AF0EE9F31A7E273EA765CD4DD8620 DUP5 CALLER DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x6CD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1017 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD CALLVALUE EQ PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x716 SWAP1 PUSH2 0x10CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x3 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x4 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x79C SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x7C6 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x7F0 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP TIMESTAMP PUSH1 0x7 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP1 SLOAD PUSH2 0x819 SWAP2 SWAP1 PUSH2 0x111A JUMP JUMPDEST PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x87B SWAP1 PUSH2 0xEAF JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x89D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x8E4 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x8B6 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x8E4 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x8E4 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x8E3 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x8C8 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0x8F5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x90E JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x8F6 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x939 DUP2 PUSH2 0x926 JUMP JUMPDEST DUP2 EQ PUSH2 0x944 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x956 DUP2 PUSH2 0x930 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x972 JUMPI PUSH2 0x971 PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x980 DUP5 DUP3 DUP6 ADD PUSH2 0x947 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x992 DUP2 PUSH2 0x926 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x989 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9BC DUP2 PUSH2 0x926 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9ED DUP3 PUSH2 0x9C2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9FD DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA3D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA22 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xA4C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA6E DUP3 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xA78 DUP2 DUP6 PUSH2 0xA0E JUMP JUMPDEST SWAP4 POP PUSH2 0xA88 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA1F JUMP JUMPDEST PUSH2 0xA91 DUP2 PUSH2 0xA52 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0xAB4 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x9B3 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0xAC7 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x9F4 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xADF DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0xAF9 DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0xB13 DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB3A DUP2 DUP5 PUSH2 0xA9C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB4B DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB66 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB42 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xBAE DUP3 PUSH2 0xA52 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xBCD JUMPI PUSH2 0xBCC PUSH2 0xB76 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBE0 PUSH2 0x912 JUMP JUMPDEST SWAP1 POP PUSH2 0xBEC DUP3 DUP3 PUSH2 0xBA5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC0C JUMPI PUSH2 0xC0B PUSH2 0xB76 JUMP JUMPDEST JUMPDEST PUSH2 0xC15 DUP3 PUSH2 0xA52 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC44 PUSH2 0xC3F DUP5 PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0xBD6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xC60 JUMPI PUSH2 0xC5F PUSH2 0xB71 JUMP JUMPDEST JUMPDEST PUSH2 0xC6B DUP5 DUP3 DUP6 PUSH2 0xC22 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC88 JUMPI PUSH2 0xC87 PUSH2 0xB6C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC98 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xC31 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xCBB JUMPI PUSH2 0xCBA PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP8 DUP3 DUP9 ADD PUSH2 0x947 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCEA JUMPI PUSH2 0xCE9 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xCF6 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD17 JUMPI PUSH2 0xD16 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD23 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD44 JUMPI PUSH2 0xD43 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD50 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD74 PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD93 JUMPI PUSH2 0xD92 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD9F DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC0 JUMPI PUSH2 0xDBF PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xDCC DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDED JUMPI PUSH2 0xDEC PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xDF9 DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F662064617070000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE4A PUSH1 0x11 DUP4 PUSH2 0xE03 JUMP JUMPDEST SWAP2 POP PUSH2 0xE55 DUP3 PUSH2 0xE14 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE79 DUP2 PUSH2 0xE3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xEC7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xEDB JUMPI PUSH2 0xEDA PUSH2 0xE80 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0xF03 DUP2 PUSH2 0xEAF JUMP JUMPDEST PUSH2 0xF0D DUP2 DUP7 PUSH2 0xE03 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0xF28 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0xF3A JUMPI PUSH2 0xF6D JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP PUSH2 0xF6D JUMP JUMPDEST PUSH2 0xF43 DUP6 PUSH2 0xEE1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF65 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0xF8B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x989 JUMP JUMPDEST PUSH2 0xF98 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xB42 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xFAA DUP2 DUP7 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xFBE DUP2 DUP6 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0xFD2 DUP2 DUP5 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFE9 DUP3 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xFF3 DUP2 DUP6 PUSH2 0xE03 JUMP JUMPDEST SWAP4 POP PUSH2 0x1003 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA1F JUMP JUMPDEST PUSH2 0x100C DUP2 PUSH2 0xA52 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x102C PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x989 JUMP JUMPDEST PUSH2 0x1039 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xB42 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x104B DUP2 DUP7 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x105F DUP2 DUP6 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1073 DUP2 DUP5 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x457468657220666F72206C6F636B757020726571756972656400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10B5 PUSH1 0x19 DUP4 PUSH2 0xE03 JUMP JUMPDEST SWAP2 POP PUSH2 0x10C0 DUP3 PUSH2 0x107F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x10E4 DUP2 PUSH2 0x10A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1125 DUP3 PUSH2 0x926 JUMP JUMPDEST SWAP2 POP PUSH2 0x1130 DUP4 PUSH2 0x926 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1165 JUMPI PUSH2 0x1164 PUSH2 0x10EB JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5C OR PUSH26 0x5542B2DC53E02FABBC4BFE1BBD5EC1C9F91C380AF9FA9FB0F0FC CODECOPY BASEFEE 0xC8 PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ", - "sourceMap": "63:2398:2:-:0;;;721:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;777:12;763:11;:26;;;;807:10;799:5;;:18;;;;;;;;;;;;;;;;;;835:1;827:5;:9;;;;721:122;63:2398;;88:117:3;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;63:2398:2:-;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@amountToPay_358": { - "entryPoint": 771, - "id": 358, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@appID_356": { - "entryPoint": 2084, - "id": 356, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@getDAppData_574": { - "entryPoint": 777, - "id": 574, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@owner_354": { - "entryPoint": 1369, - "id": 354, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@releaseDApp_614": { - "entryPoint": 417, - "id": 614, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@submitDApp_500": { - "entryPoint": 1755, - "id": 500, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@updateDApp_549": { - "entryPoint": 1405, - "id": 549, - "parameterSlots": 4, - "returnSlots": 0 - }, - "abi_decode_available_length_t_string_memory_ptr": { - "entryPoint": 3121, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_t_string_memory_ptr": { - "entryPoint": 3187, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_uint256": { - "entryPoint": 2375, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr": { - "entryPoint": 3420, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": 2396, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr": { - "entryPoint": 3233, - "id": null, - "parameterSlots": 2, - "returnSlots": 4 - }, - "abi_encode_t_address_to_t_address": { - "entryPoint": 2548, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_address_to_t_address_fromStack": { - "entryPoint": 2882, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr": { - "entryPoint": 2659, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { - "entryPoint": 4062, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack": { - "entryPoint": 3830, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack": { - "entryPoint": 3645, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948_to_t_string_memory_ptr_fromStack": { - "entryPoint": 4264, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_struct$_App_$444_memory_ptr_to_t_struct$_App_$444_memory_ptr_fromStack": { - "entryPoint": 2716, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_uint256_to_t_uint256": { - "entryPoint": 2483, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 2441, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": 2897, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 3680, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4299, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_App_$444_memory_ptr__to_t_struct$_App_$444_memory_ptr__fromStack_reversed": { - "entryPoint": 2848, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": 2456, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4119, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 3958, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "allocate_memory": { - "entryPoint": 3030, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": 2322, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "array_allocation_size_t_string_memory_ptr": { - "entryPoint": 3057, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_dataslot_t_string_storage": { - "entryPoint": 3809, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_length_t_string_memory_ptr": { - "entryPoint": 2563, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr": { - "entryPoint": 2574, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { - "entryPoint": 3587, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_add_t_uint256": { - "entryPoint": 4378, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "cleanup_t_address": { - "entryPoint": 2530, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 2498, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 2342, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "copy_calldata_to_memory": { - "entryPoint": 3106, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_memory_to_memory": { - "entryPoint": 2591, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "extract_byte_array_length": { - "entryPoint": 3759, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "finalize_allocation": { - "entryPoint": 2981, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "panic_error_0x11": { - "entryPoint": 4331, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x22": { - "entryPoint": 3712, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 2934, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { - "entryPoint": 2924, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { - "entryPoint": 2929, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": 2337, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 2332, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "round_up_to_mul_of_32": { - "entryPoint": 2642, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5": { - "entryPoint": 3604, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948": { - "entryPoint": 4223, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint256": { - "entryPoint": 2352, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:15876:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "47:35:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "57:19:3", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "73:2:3", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "67:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "67:9:3" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "57:6:3" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "40:6:3", - "type": "" - } - ], - "src": "7:75:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "177:28:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "194:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "197:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "187:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "187:12:3" - }, - "nodeType": "YulExpressionStatement", - "src": "187:12:3" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulFunctionDefinition", - "src": "88:117:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "300:28:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "317:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "320:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "310:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "310:12:3" - }, - "nodeType": "YulExpressionStatement", - "src": "310:12:3" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulFunctionDefinition", - "src": "211:117:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "379:32:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "389:16:3", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "400:5:3" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "389:7:3" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "361:5:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "371:7:3", - "type": "" - } - ], - "src": "334:77:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "460:79:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "517:16:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "526:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "529:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "519:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "519:12:3" - }, - "nodeType": "YulExpressionStatement", - "src": "519:12:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "483:5:3" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "508:5:3" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "490:17:3" - }, - "nodeType": "YulFunctionCall", - "src": "490:24:3" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "480:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "480:35:3" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "473:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "473:43:3" - }, - "nodeType": "YulIf", - "src": "470:63:3" - } - ] - }, - "name": "validator_revert_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "453:5:3", - "type": "" - } - ], - "src": "417:122:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "597:87:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "607:29:3", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "629:6:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "616:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "616:20:3" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "607:5:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "672:5:3" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nodeType": "YulIdentifier", - "src": "645:26:3" - }, - "nodeType": "YulFunctionCall", - "src": "645:33:3" - }, - "nodeType": "YulExpressionStatement", - "src": "645:33:3" - } - ] - }, - "name": "abi_decode_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "575:6:3", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "583:3:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "591:5:3", - "type": "" - } - ], - "src": "545:139:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "756:263:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "802:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "804:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "804:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "804:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "777:7:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "786:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "773:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "773:23:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "798:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "769:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "769:32:3" - }, - "nodeType": "YulIf", - "src": "766:119:3" - }, - { - "nodeType": "YulBlock", - "src": "895:117:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "910:15:3", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "924:1:3", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "914:6:3", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "939:63:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "974:9:3" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "985:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "970:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "970:22:3" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "994:7:3" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "949:20:3" - }, - "nodeType": "YulFunctionCall", - "src": "949:53:3" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "939:6:3" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "726:9:3", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "737:7:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "749:6:3", - "type": "" - } - ], - "src": "690:329:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1090:53:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1107:3:3" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1130:5:3" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "1112:17:3" - }, - "nodeType": "YulFunctionCall", - "src": "1112:24:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1100:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "1100:37:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1100:37:3" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1078:5:3", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1085:3:3", - "type": "" - } - ], - "src": "1025:118:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1247:124:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1257:26:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1269:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1280:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1265:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1265:18:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1257:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1337:6:3" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1350:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1361:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1346:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1346:17:3" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "1293:43:3" - }, - "nodeType": "YulFunctionCall", - "src": "1293:71:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1293:71:3" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1219:9:3", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1231:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "1242:4:3", - "type": "" - } - ], - "src": "1149:222:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1432:53:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1449:3:3" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1472:5:3" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "1454:17:3" - }, - "nodeType": "YulFunctionCall", - "src": "1454:24:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1442:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "1442:37:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1442:37:3" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1420:5:3", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1427:3:3", - "type": "" - } - ], - "src": "1377:108:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1536:81:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1546:65:3", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1561:5:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1568:42:3", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1557:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1557:54:3" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "1546:7:3" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1518:5:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "1528:7:3", - "type": "" - } - ], - "src": "1491:126:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1668:51:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1678:35:3", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1707:5:3" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nodeType": "YulIdentifier", - "src": "1689:17:3" - }, - "nodeType": "YulFunctionCall", - "src": "1689:24:3" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "1678:7:3" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1650:5:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "1660:7:3", - "type": "" - } - ], - "src": "1623:96:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1780:53:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1797:3:3" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1820:5:3" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "1802:17:3" - }, - "nodeType": "YulFunctionCall", - "src": "1802:24:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1790:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "1790:37:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1790:37:3" - } - ] - }, - "name": "abi_encode_t_address_to_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1768:5:3", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1775:3:3", - "type": "" - } - ], - "src": "1725:108:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1898:40:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1909:22:3", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1925:5:3" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1919:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "1919:12:3" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1909:6:3" - } - ] - } - ] - }, - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1881:5:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1891:6:3", - "type": "" - } - ], - "src": "1839:99:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2030:73:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2047:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2052:6:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2040:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "2040:19:3" - }, - "nodeType": "YulExpressionStatement", - "src": "2040:19:3" - }, - { - "nodeType": "YulAssignment", - "src": "2068:29:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2087:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2092:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2083:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2083:14:3" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "2068:11:3" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2002:3:3", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "2007:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "2018:11:3", - "type": "" - } - ], - "src": "1944:159:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2158:258:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2168:10:3", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2177:1:3", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "2172:1:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2237:63:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "2262:3:3" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "2267:1:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2258:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2258:11:3" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "2281:3:3" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "2286:1:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2277:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2277:11:3" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2271:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "2271:18:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2251:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "2251:39:3" - }, - "nodeType": "YulExpressionStatement", - "src": "2251:39:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "2198:1:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2201:6:3" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "2195:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "2195:13:3" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "2209:19:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2211:15:3", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "2220:1:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2223:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2216:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2216:10:3" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "2211:1:3" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "2191:3:3", - "statements": [] - }, - "src": "2187:113:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2334:76:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "2384:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2389:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2380:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2380:16:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2398:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2373:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "2373:27:3" - }, - "nodeType": "YulExpressionStatement", - "src": "2373:27:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "2315:1:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2318:6:3" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "2312:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "2312:13:3" - }, - "nodeType": "YulIf", - "src": "2309:101:3" - } - ] - }, - "name": "copy_memory_to_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "2140:3:3", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "2145:3:3", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "2150:6:3", - "type": "" - } - ], - "src": "2109:307:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2470:54:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2480:38:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2498:5:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2505:2:3", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2494:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2494:14:3" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2514:2:3", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "2510:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2510:7:3" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2490:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2490:28:3" - }, - "variableNames": [ - { - "name": "result", - "nodeType": "YulIdentifier", - "src": "2480:6:3" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2453:5:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nodeType": "YulTypedName", - "src": "2463:6:3", - "type": "" - } - ], - "src": "2422:102:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2612:262:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2622:53:3", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2669:5:3" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "2636:32:3" - }, - "nodeType": "YulFunctionCall", - "src": "2636:39:3" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "2626:6:3", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "2684:68:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2740:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2745:6:3" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "2691:48:3" - }, - "nodeType": "YulFunctionCall", - "src": "2691:61:3" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2684:3:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2787:5:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2794:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2783:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2783:16:3" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2801:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2806:6:3" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "2761:21:3" - }, - "nodeType": "YulFunctionCall", - "src": "2761:52:3" - }, - "nodeType": "YulExpressionStatement", - "src": "2761:52:3" - }, - { - "nodeType": "YulAssignment", - "src": "2822:46:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2833:3:3" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2860:6:3" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "2838:21:3" - }, - "nodeType": "YulFunctionCall", - "src": "2838:29:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2829:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2829:39:3" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2822:3:3" - } - ] - } - ] - }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2593:5:3", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2600:3:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "2608:3:3", - "type": "" - } - ], - "src": "2530:344:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3064:1167:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3074:26:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3090:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3095:4:3", - "type": "", - "value": "0xa0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3086:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3086:14:3" - }, - "variables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3078:4:3", - "type": "" - } - ] - }, - { - "nodeType": "YulBlock", - "src": "3110:165:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3146:43:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3176:5:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3183:4:3", - "type": "", - "value": "0x00" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3172:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3172:16:3" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3166:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "3166:23:3" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "3150:12:3", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "3236:12:3" - }, - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3254:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3259:4:3", - "type": "", - "value": "0x00" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3250:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3250:14:3" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256", - "nodeType": "YulIdentifier", - "src": "3202:33:3" - }, - "nodeType": "YulFunctionCall", - "src": "3202:63:3" - }, - "nodeType": "YulExpressionStatement", - "src": "3202:63:3" - } - ] - }, - { - "nodeType": "YulBlock", - "src": "3285:168:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3324:43:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3354:5:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3361:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3350:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3350:16:3" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3344:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "3344:23:3" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "3328:12:3", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "3414:12:3" - }, - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3432:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3437:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3428:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3428:14:3" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address", - "nodeType": "YulIdentifier", - "src": "3380:33:3" - }, - "nodeType": "YulFunctionCall", - "src": "3380:63:3" - }, - "nodeType": "YulExpressionStatement", - "src": "3380:63:3" - } - ] - }, - { - "nodeType": "YulBlock", - "src": "3463:238:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3501:43:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3531:5:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3538:4:3", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3527:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3527:16:3" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3521:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "3521:23:3" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "3505:12:3", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3569:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3574:4:3", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3565:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3565:14:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3585:4:3" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3591:3:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3581:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3581:14:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3558:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "3558:38:3" - }, - "nodeType": "YulExpressionStatement", - "src": "3558:38:3" - }, - { - "nodeType": "YulAssignment", - "src": "3609:81:3", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "3671:12:3" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3685:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "3617:53:3" - }, - "nodeType": "YulFunctionCall", - "src": "3617:73:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3609:4:3" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "3711:242:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3753:43:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3783:5:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3790:4:3", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3779:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3779:16:3" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3773:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "3773:23:3" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "3757:12:3", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3821:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3826:4:3", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3817:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3817:14:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3837:4:3" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3843:3:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3833:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3833:14:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3810:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "3810:38:3" - }, - "nodeType": "YulExpressionStatement", - "src": "3810:38:3" - }, - { - "nodeType": "YulAssignment", - "src": "3861:81:3", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "3923:12:3" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3937:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "3869:53:3" - }, - "nodeType": "YulFunctionCall", - "src": "3869:73:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3861:4:3" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "3963:241:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4004:43:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4034:5:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4041:4:3", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4030:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "4030:16:3" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "4024:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "4024:23:3" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "4008:12:3", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4072:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4077:4:3", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4068:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "4068:14:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4088:4:3" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4094:3:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4084:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "4084:14:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4061:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "4061:38:3" - }, - "nodeType": "YulExpressionStatement", - "src": "4061:38:3" - }, - { - "nodeType": "YulAssignment", - "src": "4112:81:3", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "4174:12:3" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4188:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "4120:53:3" - }, - "nodeType": "YulFunctionCall", - "src": "4120:73:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4112:4:3" - } - ] - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4214:11:3", - "value": { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4221:4:3" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "4214:3:3" - } - ] - } - ] - }, - "name": "abi_encode_t_struct$_App_$444_memory_ptr_to_t_struct$_App_$444_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "3043:5:3", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "3050:3:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "3059:3:3", - "type": "" - } - ], - "src": "2950:1281:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4375:215:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4385:26:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4397:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4408:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4393:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "4393:18:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4385:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4432:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4443:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4428:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "4428:17:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4451:4:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4457:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4447:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "4447:20:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4421:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "4421:47:3" - }, - "nodeType": "YulExpressionStatement", - "src": "4421:47:3" - }, - { - "nodeType": "YulAssignment", - "src": "4477:106:3", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4569:6:3" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4578:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_struct$_App_$444_memory_ptr_to_t_struct$_App_$444_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "4485:83:3" - }, - "nodeType": "YulFunctionCall", - "src": "4485:98:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4477:4:3" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_struct$_App_$444_memory_ptr__to_t_struct$_App_$444_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4347:9:3", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4359:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4370:4:3", - "type": "" - } - ], - "src": "4237:353:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4661:53:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4678:3:3" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4701:5:3" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "4683:17:3" - }, - "nodeType": "YulFunctionCall", - "src": "4683:24:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4671:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "4671:37:3" - }, - "nodeType": "YulExpressionStatement", - "src": "4671:37:3" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "4649:5:3", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "4656:3:3", - "type": "" - } - ], - "src": "4596:118:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4818:124:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4828:26:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4840:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4851:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4836:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "4836:18:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4828:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4908:6:3" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4921:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4932:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4917:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "4917:17:3" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "4864:43:3" - }, - "nodeType": "YulFunctionCall", - "src": "4864:71:3" - }, - "nodeType": "YulExpressionStatement", - "src": "4864:71:3" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4790:9:3", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4802:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4813:4:3", - "type": "" - } - ], - "src": "4720:222:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5037:28:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5054:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5057:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5047:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "5047:12:3" - }, - "nodeType": "YulExpressionStatement", - "src": "5047:12:3" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nodeType": "YulFunctionDefinition", - "src": "4948:117:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5160:28:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5177:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5180:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5170:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "5170:12:3" - }, - "nodeType": "YulExpressionStatement", - "src": "5170:12:3" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nodeType": "YulFunctionDefinition", - "src": "5071:117:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5222:152:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5239:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5242:77:3", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5232:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "5232:88:3" - }, - "nodeType": "YulExpressionStatement", - "src": "5232:88:3" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5336:1:3", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5339:4:3", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5329:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "5329:15:3" - }, - "nodeType": "YulExpressionStatement", - "src": "5329:15:3" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5360:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5363:4:3", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5353:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "5353:15:3" - }, - "nodeType": "YulExpressionStatement", - "src": "5353:15:3" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "5194:180:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5423:238:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "5433:58:3", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "5455:6:3" - }, - { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "5485:4:3" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "5463:21:3" - }, - "nodeType": "YulFunctionCall", - "src": "5463:27:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5451:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "5451:40:3" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "5437:10:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5602:22:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "5604:16:3" - }, - "nodeType": "YulFunctionCall", - "src": "5604:18:3" - }, - "nodeType": "YulExpressionStatement", - "src": "5604:18:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "5545:10:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5557:18:3", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "5542:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "5542:34:3" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "5581:10:3" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "5593:6:3" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "5578:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "5578:22:3" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "5539:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "5539:62:3" - }, - "nodeType": "YulIf", - "src": "5536:88:3" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5640:2:3", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "5644:10:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5633:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "5633:22:3" - }, - "nodeType": "YulExpressionStatement", - "src": "5633:22:3" - } - ] - }, - "name": "finalize_allocation", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "5409:6:3", - "type": "" - }, - { - "name": "size", - "nodeType": "YulTypedName", - "src": "5417:4:3", - "type": "" - } - ], - "src": "5380:281:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5708:88:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "5718:30:3", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nodeType": "YulIdentifier", - "src": "5728:18:3" - }, - "nodeType": "YulFunctionCall", - "src": "5728:20:3" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "5718:6:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "5777:6:3" - }, - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "5785:4:3" - } - ], - "functionName": { - "name": "finalize_allocation", - "nodeType": "YulIdentifier", - "src": "5757:19:3" - }, - "nodeType": "YulFunctionCall", - "src": "5757:33:3" - }, - "nodeType": "YulExpressionStatement", - "src": "5757:33:3" - } - ] - }, - "name": "allocate_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "5692:4:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "5701:6:3", - "type": "" - } - ], - "src": "5667:129:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5869:241:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "5974:22:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "5976:16:3" - }, - "nodeType": "YulFunctionCall", - "src": "5976:18:3" - }, - "nodeType": "YulExpressionStatement", - "src": "5976:18:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5946:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5954:18:3", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "5943:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "5943:30:3" - }, - "nodeType": "YulIf", - "src": "5940:56:3" - }, - { - "nodeType": "YulAssignment", - "src": "6006:37:3", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6036:6:3" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "6014:21:3" - }, - "nodeType": "YulFunctionCall", - "src": "6014:29:3" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "6006:4:3" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "6080:23:3", - "value": { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "6092:4:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6098:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6088:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "6088:15:3" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "6080:4:3" - } - ] - } - ] - }, - "name": "array_allocation_size_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "5853:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "5864:4:3", - "type": "" - } - ], - "src": "5802:308:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6167:103:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "6190:3:3" - }, - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "6195:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6200:6:3" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "6177:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "6177:30:3" - }, - "nodeType": "YulExpressionStatement", - "src": "6177:30:3" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "6248:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6253:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6244:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "6244:16:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6262:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6237:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "6237:27:3" - }, - "nodeType": "YulExpressionStatement", - "src": "6237:27:3" - } - ] - }, - "name": "copy_calldata_to_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "6149:3:3", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "6154:3:3", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "6159:6:3", - "type": "" - } - ], - "src": "6116:154:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6360:328:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6370:75:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6437:6:3" - } - ], - "functionName": { - "name": "array_allocation_size_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "6395:41:3" - }, - "nodeType": "YulFunctionCall", - "src": "6395:49:3" - } - ], - "functionName": { - "name": "allocate_memory", - "nodeType": "YulIdentifier", - "src": "6379:15:3" - }, - "nodeType": "YulFunctionCall", - "src": "6379:66:3" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "6370:5:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "6461:5:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6468:6:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6454:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "6454:21:3" - }, - "nodeType": "YulExpressionStatement", - "src": "6454:21:3" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6484:27:3", - "value": { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "6499:5:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6506:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6495:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "6495:16:3" - }, - "variables": [ - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "6488:3:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6549:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nodeType": "YulIdentifier", - "src": "6551:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "6551:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "6551:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "6530:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6535:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6526:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "6526:16:3" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "6544:3:3" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "6523:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "6523:25:3" - }, - "nodeType": "YulIf", - "src": "6520:112:3" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "6665:3:3" - }, - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "6670:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6675:6:3" - } - ], - "functionName": { - "name": "copy_calldata_to_memory", - "nodeType": "YulIdentifier", - "src": "6641:23:3" - }, - "nodeType": "YulFunctionCall", - "src": "6641:41:3" - }, - "nodeType": "YulExpressionStatement", - "src": "6641:41:3" - } - ] - }, - "name": "abi_decode_available_length_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "6333:3:3", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "6338:6:3", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "6346:3:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "6354:5:3", - "type": "" - } - ], - "src": "6276:412:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6770:278:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "6819:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nodeType": "YulIdentifier", - "src": "6821:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "6821:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "6821:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "6798:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6806:4:3", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6794:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "6794:17:3" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "6813:3:3" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "6790:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "6790:27:3" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "6783:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "6783:35:3" - }, - "nodeType": "YulIf", - "src": "6780:122:3" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6911:34:3", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "6938:6:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "6925:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "6925:20:3" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "6915:6:3", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "6954:88:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "7015:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7023:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7011:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "7011:17:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "7030:6:3" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "7038:3:3" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "6963:47:3" - }, - "nodeType": "YulFunctionCall", - "src": "6963:79:3" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "6954:5:3" - } - ] - } - ] - }, - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "6748:6:3", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "6756:3:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "6764:5:3", - "type": "" - } - ], - "src": "6708:340:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7201:1158:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "7248:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "7250:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "7250:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "7250:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7222:7:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7231:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7218:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "7218:23:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7243:3:3", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "7214:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "7214:33:3" - }, - "nodeType": "YulIf", - "src": "7211:120:3" - }, - { - "nodeType": "YulBlock", - "src": "7341:117:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7356:15:3", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7370:1:3", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "7360:6:3", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "7385:63:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7420:9:3" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "7431:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7416:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "7416:22:3" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7440:7:3" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "7395:20:3" - }, - "nodeType": "YulFunctionCall", - "src": "7395:53:3" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "7385:6:3" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "7468:288:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7483:46:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7514:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7525:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7510:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "7510:18:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "7497:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "7497:32:3" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "7487:6:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7576:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "7578:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "7578:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "7578:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "7548:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7556:18:3", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7545:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "7545:30:3" - }, - "nodeType": "YulIf", - "src": "7542:117:3" - }, - { - "nodeType": "YulAssignment", - "src": "7673:73:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7718:9:3" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "7729:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7714:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "7714:22:3" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7738:7:3" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "7683:30:3" - }, - "nodeType": "YulFunctionCall", - "src": "7683:63:3" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "7673:6:3" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "7766:288:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7781:46:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7812:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7823:2:3", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7808:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "7808:18:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "7795:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "7795:32:3" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "7785:6:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7874:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "7876:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "7876:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "7876:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "7846:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7854:18:3", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7843:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "7843:30:3" - }, - "nodeType": "YulIf", - "src": "7840:117:3" - }, - { - "nodeType": "YulAssignment", - "src": "7971:73:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8016:9:3" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "8027:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8012:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "8012:22:3" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "8036:7:3" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "7981:30:3" - }, - "nodeType": "YulFunctionCall", - "src": "7981:63:3" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "7971:6:3" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "8064:288:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "8079:46:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8110:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8121:2:3", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8106:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "8106:18:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "8093:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "8093:32:3" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "8083:6:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8172:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "8174:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "8174:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "8174:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "8144:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8152:18:3", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "8141:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "8141:30:3" - }, - "nodeType": "YulIf", - "src": "8138:117:3" - }, - { - "nodeType": "YulAssignment", - "src": "8269:73:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8314:9:3" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "8325:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8310:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "8310:22:3" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "8334:7:3" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "8279:30:3" - }, - "nodeType": "YulFunctionCall", - "src": "8279:63:3" - }, - "variableNames": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "8269:6:3" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7147:9:3", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "7158:7:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "7170:6:3", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "7178:6:3", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "7186:6:3", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "7194:6:3", - "type": "" - } - ], - "src": "7054:1305:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8495:1029:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "8541:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "8543:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "8543:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "8543:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "8516:7:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8525:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "8512:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "8512:23:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8537:2:3", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "8508:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "8508:32:3" - }, - "nodeType": "YulIf", - "src": "8505:119:3" - }, - { - "nodeType": "YulBlock", - "src": "8634:287:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "8649:45:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8680:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8691:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8676:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "8676:17:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "8663:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "8663:31:3" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "8653:6:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8741:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "8743:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "8743:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "8743:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "8713:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8721:18:3", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "8710:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "8710:30:3" - }, - "nodeType": "YulIf", - "src": "8707:117:3" - }, - { - "nodeType": "YulAssignment", - "src": "8838:73:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8883:9:3" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "8894:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8879:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "8879:22:3" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "8903:7:3" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "8848:30:3" - }, - "nodeType": "YulFunctionCall", - "src": "8848:63:3" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "8838:6:3" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "8931:288:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "8946:46:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8977:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8988:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8973:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "8973:18:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "8960:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "8960:32:3" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "8950:6:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9039:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "9041:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "9041:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "9041:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "9011:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9019:18:3", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "9008:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "9008:30:3" - }, - "nodeType": "YulIf", - "src": "9005:117:3" - }, - { - "nodeType": "YulAssignment", - "src": "9136:73:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "9181:9:3" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "9192:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9177:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "9177:22:3" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "9201:7:3" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "9146:30:3" - }, - "nodeType": "YulFunctionCall", - "src": "9146:63:3" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "9136:6:3" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "9229:288:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "9244:46:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "9275:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9286:2:3", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9271:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "9271:18:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "9258:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "9258:32:3" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "9248:6:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9337:83:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "9339:77:3" - }, - "nodeType": "YulFunctionCall", - "src": "9339:79:3" - }, - "nodeType": "YulExpressionStatement", - "src": "9339:79:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "9309:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9317:18:3", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "9306:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "9306:30:3" - }, - "nodeType": "YulIf", - "src": "9303:117:3" - }, - { - "nodeType": "YulAssignment", - "src": "9434:73:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "9479:9:3" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "9490:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9475:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "9475:22:3" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "9499:7:3" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "9444:30:3" - }, - "nodeType": "YulFunctionCall", - "src": "9444:63:3" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "9434:6:3" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8449:9:3", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "8460:7:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "8472:6:3", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "8480:6:3", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "8488:6:3", - "type": "" - } - ], - "src": "8365:1159:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9626:73:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9643:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "9648:6:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9636:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "9636:19:3" - }, - "nodeType": "YulExpressionStatement", - "src": "9636:19:3" - }, - { - "nodeType": "YulAssignment", - "src": "9664:29:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9683:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9688:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9679:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "9679:14:3" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "9664:11:3" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "9598:3:3", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "9603:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "9614:11:3", - "type": "" - } - ], - "src": "9530:169:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9811:61:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "9833:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9841:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9829:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "9829:14:3" - }, - { - "hexValue": "4e6f74206f776e6572206f662064617070", - "kind": "string", - "nodeType": "YulLiteral", - "src": "9845:19:3", - "type": "", - "value": "Not owner of dapp" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9822:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "9822:43:3" - }, - "nodeType": "YulExpressionStatement", - "src": "9822:43:3" - } - ] - }, - "name": "store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "9803:6:3", - "type": "" - } - ], - "src": "9705:167:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10024:220:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10034:74:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10100:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10105:2:3", - "type": "", - "value": "17" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "10041:58:3" - }, - "nodeType": "YulFunctionCall", - "src": "10041:67:3" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10034:3:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10206:3:3" - } - ], - "functionName": { - "name": "store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "nodeType": "YulIdentifier", - "src": "10117:88:3" - }, - "nodeType": "YulFunctionCall", - "src": "10117:93:3" - }, - "nodeType": "YulExpressionStatement", - "src": "10117:93:3" - }, - { - "nodeType": "YulAssignment", - "src": "10219:19:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10230:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10235:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10226:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "10226:12:3" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "10219:3:3" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "10012:3:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "10020:3:3", - "type": "" - } - ], - "src": "9878:366:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10421:248:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10431:26:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10443:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10454:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10439:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "10439:18:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "10431:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10478:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10489:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10474:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "10474:17:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "10497:4:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10503:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "10493:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "10493:20:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10467:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "10467:47:3" - }, - "nodeType": "YulExpressionStatement", - "src": "10467:47:3" - }, - { - "nodeType": "YulAssignment", - "src": "10523:139:3", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "10657:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "10531:124:3" - }, - "nodeType": "YulFunctionCall", - "src": "10531:131:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "10523:4:3" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "10401:9:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "10416:4:3", - "type": "" - } - ], - "src": "10250:419:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10703:152:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10720:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10723:77:3", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10713:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "10713:88:3" - }, - "nodeType": "YulExpressionStatement", - "src": "10713:88:3" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10817:1:3", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10820:4:3", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10810:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "10810:15:3" - }, - "nodeType": "YulExpressionStatement", - "src": "10810:15:3" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10841:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10844:4:3", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "10834:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "10834:15:3" - }, - "nodeType": "YulExpressionStatement", - "src": "10834:15:3" - } - ] - }, - "name": "panic_error_0x22", - "nodeType": "YulFunctionDefinition", - "src": "10675:180:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10912:269:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10922:22:3", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "10936:4:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10942:1:3", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "div", - "nodeType": "YulIdentifier", - "src": "10932:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "10932:12:3" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10922:6:3" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10953:38:3", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "10983:4:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10989:1:3", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10979:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "10979:12:3" - }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "10957:18:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11030:51:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11044:27:3", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "11058:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11066:4:3", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "11054:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "11054:17:3" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "11044:6:3" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "11010:18:3" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "11003:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "11003:26:3" - }, - "nodeType": "YulIf", - "src": "11000:81:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11133:42:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x22", - "nodeType": "YulIdentifier", - "src": "11147:16:3" - }, - "nodeType": "YulFunctionCall", - "src": "11147:18:3" - }, - "nodeType": "YulExpressionStatement", - "src": "11147:18:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "11097:18:3" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "11120:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11128:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "11117:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "11117:14:3" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "11094:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "11094:38:3" - }, - "nodeType": "YulIf", - "src": "11091:84:3" - } - ] - }, - "name": "extract_byte_array_length", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "10896:4:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "10905:6:3", - "type": "" - } - ], - "src": "10861:320:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11241:87:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11251:11:3", - "value": { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "11259:3:3" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "11251:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11279:1:3", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "11282:3:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11272:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "11272:14:3" - }, - "nodeType": "YulExpressionStatement", - "src": "11272:14:3" - }, - { - "nodeType": "YulAssignment", - "src": "11295:26:3", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11313:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11316:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "11303:9:3" - }, - "nodeType": "YulFunctionCall", - "src": "11303:18:3" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "11295:4:3" - } - ] - } - ] - }, - "name": "array_dataslot_t_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "11228:3:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "11236:4:3", - "type": "" - } - ], - "src": "11187:141:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11447:713:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "11457:29:3", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11480:5:3" - } - ], - "functionName": { - "name": "sload", - "nodeType": "YulIdentifier", - "src": "11474:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "11474:12:3" - }, - "variables": [ - { - "name": "slotValue", - "nodeType": "YulTypedName", - "src": "11461:9:3", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "11495:50:3", - "value": { - "arguments": [ - { - "name": "slotValue", - "nodeType": "YulIdentifier", - "src": "11535:9:3" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nodeType": "YulIdentifier", - "src": "11509:25:3" - }, - "nodeType": "YulFunctionCall", - "src": "11509:36:3" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "11499:6:3", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "11554:78:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11620:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "11625:6:3" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "11561:58:3" - }, - "nodeType": "YulFunctionCall", - "src": "11561:71:3" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11554:3:3" - } - ] - }, - { - "cases": [ - { - "body": { - "nodeType": "YulBlock", - "src": "11681:128:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11734:3:3" - }, - { - "arguments": [ - { - "name": "slotValue", - "nodeType": "YulIdentifier", - "src": "11743:9:3" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11758:4:3", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "11754:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "11754:9:3" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "11739:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "11739:25:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11727:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "11727:38:3" - }, - "nodeType": "YulExpressionStatement", - "src": "11727:38:3" - }, - { - "nodeType": "YulAssignment", - "src": "11778:21:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11789:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11794:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11785:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "11785:14:3" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "11778:3:3" - } - ] - } - ] - }, - "nodeType": "YulCase", - "src": "11674:135:3", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11679:1:3", - "type": "", - "value": "0" - } - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11825:329:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "11870:53:3", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11917:5:3" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nodeType": "YulIdentifier", - "src": "11885:31:3" - }, - "nodeType": "YulFunctionCall", - "src": "11885:38:3" - }, - "variables": [ - { - "name": "dataPos", - "nodeType": "YulTypedName", - "src": "11874:7:3", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "11936:10:3", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11945:1:3", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "11940:1:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12003:110:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12032:3:3" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "12037:1:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12028:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12028:11:3" - }, - { - "arguments": [ - { - "name": "dataPos", - "nodeType": "YulIdentifier", - "src": "12047:7:3" - } - ], - "functionName": { - "name": "sload", - "nodeType": "YulIdentifier", - "src": "12041:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "12041:14:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12021:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "12021:35:3" - }, - "nodeType": "YulExpressionStatement", - "src": "12021:35:3" - }, - { - "nodeType": "YulAssignment", - "src": "12073:26:3", - "value": { - "arguments": [ - { - "name": "dataPos", - "nodeType": "YulIdentifier", - "src": "12088:7:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12097:1:3", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12084:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12084:15:3" - }, - "variableNames": [ - { - "name": "dataPos", - "nodeType": "YulIdentifier", - "src": "12073:7:3" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "11970:1:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "11973:6:3" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "11967:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "11967:13:3" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "11981:21:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11983:17:3", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "11992:1:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11995:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11988:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "11988:12:3" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "11983:1:3" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "11963:3:3", - "statements": [] - }, - "src": "11959:154:3" - }, - { - "nodeType": "YulAssignment", - "src": "12126:18:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12137:3:3" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "12142:1:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12133:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12133:11:3" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "12126:3:3" - } - ] - } - ] - }, - "nodeType": "YulCase", - "src": "11818:336:3", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11823:1:3", - "type": "", - "value": "1" - } - } - ], - "expression": { - "arguments": [ - { - "name": "slotValue", - "nodeType": "YulIdentifier", - "src": "11652:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11663:1:3", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "11648:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "11648:17:3" - }, - "nodeType": "YulSwitch", - "src": "11641:513:3" - } - ] - }, - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "11428:5:3", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "11435:3:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "11443:3:3", - "type": "" - } - ], - "src": "11358:802:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12427:658:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "12437:27:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12449:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12460:3:3", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12445:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12445:19:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12437:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12518:6:3" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12531:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12542:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12527:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12527:17:3" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "12474:43:3" - }, - "nodeType": "YulFunctionCall", - "src": "12474:71:3" - }, - "nodeType": "YulExpressionStatement", - "src": "12474:71:3" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "12599:6:3" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12612:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12623:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12608:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12608:18:3" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "12555:43:3" - }, - "nodeType": "YulFunctionCall", - "src": "12555:72:3" - }, - "nodeType": "YulExpressionStatement", - "src": "12555:72:3" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12648:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12659:2:3", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12644:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12644:18:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12668:4:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12674:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "12664:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12664:20:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12637:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "12637:48:3" - }, - "nodeType": "YulExpressionStatement", - "src": "12637:48:3" - }, - { - "nodeType": "YulAssignment", - "src": "12694:83:3", - "value": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "12763:6:3" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12772:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "12702:60:3" - }, - "nodeType": "YulFunctionCall", - "src": "12702:75:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12694:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12798:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12809:2:3", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12794:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12794:18:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12818:4:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12824:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "12814:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12814:20:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12787:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "12787:48:3" - }, - "nodeType": "YulExpressionStatement", - "src": "12787:48:3" - }, - { - "nodeType": "YulAssignment", - "src": "12844:83:3", - "value": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "12913:6:3" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12922:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "12852:60:3" - }, - "nodeType": "YulFunctionCall", - "src": "12852:75:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12844:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12948:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12959:3:3", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12944:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12944:19:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12969:4:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12975:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "12965:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "12965:20:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12937:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "12937:49:3" - }, - "nodeType": "YulExpressionStatement", - "src": "12937:49:3" - }, - { - "nodeType": "YulAssignment", - "src": "12995:83:3", - "value": { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "13064:6:3" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13073:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "13003:60:3" - }, - "nodeType": "YulFunctionCall", - "src": "13003:75:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12995:4:3" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "12367:9:3", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "12379:6:3", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "12387:6:3", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "12395:6:3", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "12403:6:3", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "12411:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "12422:4:3", - "type": "" - } - ], - "src": "12166:919:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13183:272:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "13193:53:3", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "13240:5:3" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "13207:32:3" - }, - "nodeType": "YulFunctionCall", - "src": "13207:39:3" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "13197:6:3", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "13255:78:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "13321:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "13326:6:3" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "13262:58:3" - }, - "nodeType": "YulFunctionCall", - "src": "13262:71:3" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "13255:3:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "13368:5:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13375:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13364:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "13364:16:3" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "13382:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "13387:6:3" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "13342:21:3" - }, - "nodeType": "YulFunctionCall", - "src": "13342:52:3" - }, - "nodeType": "YulExpressionStatement", - "src": "13342:52:3" - }, - { - "nodeType": "YulAssignment", - "src": "13403:46:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "13414:3:3" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "13441:6:3" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "13419:21:3" - }, - "nodeType": "YulFunctionCall", - "src": "13419:29:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13410:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "13410:39:3" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "13403:3:3" - } - ] - } - ] - }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "13164:5:3", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "13171:3:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "13179:3:3", - "type": "" - } - ], - "src": "13091:364:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13731:667:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "13741:27:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13753:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13764:3:3", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13749:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "13749:19:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13741:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "13822:6:3" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13835:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13846:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13831:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "13831:17:3" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "13778:43:3" - }, - "nodeType": "YulFunctionCall", - "src": "13778:71:3" - }, - "nodeType": "YulExpressionStatement", - "src": "13778:71:3" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "13903:6:3" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13916:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13927:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13912:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "13912:18:3" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "13859:43:3" - }, - "nodeType": "YulFunctionCall", - "src": "13859:72:3" - }, - "nodeType": "YulExpressionStatement", - "src": "13859:72:3" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13952:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13963:2:3", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13948:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "13948:18:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13972:4:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13978:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "13968:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "13968:20:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13941:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "13941:48:3" - }, - "nodeType": "YulExpressionStatement", - "src": "13941:48:3" - }, - { - "nodeType": "YulAssignment", - "src": "13998:86:3", - "value": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "14070:6:3" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14079:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "14006:63:3" - }, - "nodeType": "YulFunctionCall", - "src": "14006:78:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13998:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14105:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14116:2:3", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14101:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "14101:18:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14125:4:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14131:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "14121:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "14121:20:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "14094:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "14094:48:3" - }, - "nodeType": "YulExpressionStatement", - "src": "14094:48:3" - }, - { - "nodeType": "YulAssignment", - "src": "14151:86:3", - "value": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "14223:6:3" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14232:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "14159:63:3" - }, - "nodeType": "YulFunctionCall", - "src": "14159:78:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14151:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14258:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14269:3:3", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14254:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "14254:19:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14279:4:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14285:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "14275:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "14275:20:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "14247:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "14247:49:3" - }, - "nodeType": "YulExpressionStatement", - "src": "14247:49:3" - }, - { - "nodeType": "YulAssignment", - "src": "14305:86:3", - "value": { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "14377:6:3" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14386:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "14313:63:3" - }, - "nodeType": "YulFunctionCall", - "src": "14313:78:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14305:4:3" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "13671:9:3", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "13683:6:3", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "13691:6:3", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "13699:6:3", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "13707:6:3", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "13715:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "13726:4:3", - "type": "" - } - ], - "src": "13461:937:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "14510:69:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "14532:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14540:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14528:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "14528:14:3" - }, - { - "hexValue": "457468657220666f72206c6f636b7570207265717569726564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "14544:27:3", - "type": "", - "value": "Ether for lockup required" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "14521:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "14521:51:3" - }, - "nodeType": "YulExpressionStatement", - "src": "14521:51:3" - } - ] - }, - "name": "store_literal_in_memory_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "14502:6:3", - "type": "" - } - ], - "src": "14404:175:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "14731:220:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "14741:74:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "14807:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14812:2:3", - "type": "", - "value": "25" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "14748:58:3" - }, - "nodeType": "YulFunctionCall", - "src": "14748:67:3" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "14741:3:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "14913:3:3" - } - ], - "functionName": { - "name": "store_literal_in_memory_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948", - "nodeType": "YulIdentifier", - "src": "14824:88:3" - }, - "nodeType": "YulFunctionCall", - "src": "14824:93:3" - }, - "nodeType": "YulExpressionStatement", - "src": "14824:93:3" - }, - { - "nodeType": "YulAssignment", - "src": "14926:19:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "14937:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14942:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14933:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "14933:12:3" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "14926:3:3" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "14719:3:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "14727:3:3", - "type": "" - } - ], - "src": "14585:366:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "15128:248:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "15138:26:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15150:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15161:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15146:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "15146:18:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15138:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15185:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15196:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15181:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "15181:17:3" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15204:4:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15210:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "15200:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "15200:20:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "15174:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "15174:47:3" - }, - "nodeType": "YulExpressionStatement", - "src": "15174:47:3" - }, - { - "nodeType": "YulAssignment", - "src": "15230:139:3", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15364:4:3" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "15238:124:3" - }, - "nodeType": "YulFunctionCall", - "src": "15238:131:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15230:4:3" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "15108:9:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "15123:4:3", - "type": "" - } - ], - "src": "14957:419:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "15410:152:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15427:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15430:77:3", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "15420:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "15420:88:3" - }, - "nodeType": "YulExpressionStatement", - "src": "15420:88:3" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15524:1:3", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15527:4:3", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "15517:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "15517:15:3" - }, - "nodeType": "YulExpressionStatement", - "src": "15517:15:3" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15548:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15551:4:3", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "15541:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "15541:15:3" - }, - "nodeType": "YulExpressionStatement", - "src": "15541:15:3" - } - ] - }, - "name": "panic_error_0x11", - "nodeType": "YulFunctionDefinition", - "src": "15382:180:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "15612:261:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "15622:25:3", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "15645:1:3" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "15627:17:3" - }, - "nodeType": "YulFunctionCall", - "src": "15627:20:3" - }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "15622:1:3" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "15656:25:3", - "value": { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "15679:1:3" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "15661:17:3" - }, - "nodeType": "YulFunctionCall", - "src": "15661:20:3" - }, - "variableNames": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "15656:1:3" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "15819:22:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "15821:16:3" - }, - "nodeType": "YulFunctionCall", - "src": "15821:18:3" - }, - "nodeType": "YulExpressionStatement", - "src": "15821:18:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "15740:1:3" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15747:66:3", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "15815:1:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "15743:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "15743:74:3" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "15737:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "15737:81:3" - }, - "nodeType": "YulIf", - "src": "15734:107:3" - }, - { - "nodeType": "YulAssignment", - "src": "15851:16:3", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "15862:1:3" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "15865:1:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15858:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "15858:9:3" - }, - "variableNames": [ - { - "name": "sum", - "nodeType": "YulIdentifier", - "src": "15851:3:3" - } - ] - } - ] - }, - "name": "checked_add_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "15599:1:3", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "15602:1:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nodeType": "YulTypedName", - "src": "15608:3:3", - "type": "" - } - ], - "src": "15568:305:3" - } - ] - }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct NotUpgradableStore.App -> struct NotUpgradableStore.App\n function abi_encode_t_struct$_App_$444_memory_ptr_to_t_struct$_App_$444_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0xa0)\n\n {\n // appID\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // appOwner\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // appName\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appIPFSHash\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appAddData\n\n let memberValue0 := mload(add(value, 0x80))\n\n mstore(add(pos, 0x80), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_App_$444_memory_ptr__to_t_struct$_App_$444_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_App_$444_memory_ptr_to_t_struct$_App_$444_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner of dapp\")\n\n }\n\n function abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, 0x20)\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function store_literal_in_memory_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948(memPtr) {\n\n mstore(add(memPtr, 0), \"Ether for lockup required\")\n\n }\n\n function abi_encode_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n}\n", - "id": 3, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b14610106578063ab444f2814610131578063e73173a41461015a578063f9a6cbae1461017657610070565b80635cadd4a9146100755780637ba136801461009e578063887e4b86146100c9575b600080fd5b34801561008157600080fd5b5061009c6004803603810190610097919061095c565b6101a1565b005b3480156100aa57600080fd5b506100b3610303565b6040516100c09190610998565b60405180910390f35b3480156100d557600080fd5b506100f060048036038101906100eb919061095c565b610309565b6040516100fd9190610b20565b60405180910390f35b34801561011257600080fd5b5061011b610559565b6040516101289190610b51565b60405180910390f35b34801561013d57600080fd5b5061015860048036038101906101539190610ca1565b61057d565b005b610174600480360381019061016f9190610d5c565b6106db565b005b34801561018257600080fd5b5061018b610824565b6040516101989190610998565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023990610e60565b60405180910390fd5b7f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc3881336004600085815260200190815260200160002060056000868152602001908152602001600020600660008781526020019081526020016000206040516102af959493929190610f76565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6002549081150290604051600060405180830381858888f193505050501580156102ff573d6000803e3d6000fd5b5050565b60025481565b61031161082a565b6040518060a001604052808381526020016003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160046000858152602001908152602001600020805461038f90610eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb90610eaf565b80156104085780601f106103dd57610100808354040283529160200191610408565b820191906000526020600020905b8154815290600101906020018083116103eb57829003601f168201915b5050505050815260200160056000858152602001908152602001600020805461043090610eaf565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90610eaf565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b505050505081526020016006600085815260200190815260200160002080546104d190610eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610eaf565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b50505050508152509050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166003600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461061e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061590610e60565b60405180910390fd5b8260046000868152602001908152602001600020908051906020019061064592919061086f565b508160056000868152602001908152602001600020908051906020019061066d92919061086f565b508060066000868152602001908152602001600020908051906020019061069592919061086f565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd862084338585856040516106cd959493929190611017565b60405180910390a150505050565b600254341461071f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610716906110cb565b60405180910390fd5b3360036000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006001548152602001908152602001600020908051906020019061079c92919061086f565b508160056000600154815260200190815260200160002090805190602001906107c692919061086f565b508060066000600154815260200190815260200160002090805190602001906107f092919061086f565b50426007600060015481526020019081526020016000208190555060018054610819919061111a565b600181905550505050565b60015481565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b82805461087b90610eaf565b90600052602060002090601f01602090048101928261089d57600085556108e4565b82601f106108b657805160ff19168380011785556108e4565b828001600101855582156108e4579182015b828111156108e35782518255916020019190600101906108c8565b5b5090506108f191906108f5565b5090565b5b8082111561090e5760008160009055506001016108f6565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61093981610926565b811461094457600080fd5b50565b60008135905061095681610930565b92915050565b6000602082840312156109725761097161091c565b5b600061098084828501610947565b91505092915050565b61099281610926565b82525050565b60006020820190506109ad6000830184610989565b92915050565b6109bc81610926565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109ed826109c2565b9050919050565b6109fd816109e2565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610a3d578082015181840152602081019050610a22565b83811115610a4c576000848401525b50505050565b6000601f19601f8301169050919050565b6000610a6e82610a03565b610a788185610a0e565b9350610a88818560208601610a1f565b610a9181610a52565b840191505092915050565b600060a083016000830151610ab460008601826109b3565b506020830151610ac760208601826109f4565b5060408301518482036040860152610adf8282610a63565b91505060608301518482036060860152610af98282610a63565b91505060808301518482036080860152610b138282610a63565b9150508091505092915050565b60006020820190508181036000830152610b3a8184610a9c565b905092915050565b610b4b816109e2565b82525050565b6000602082019050610b666000830184610b42565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610bae82610a52565b810181811067ffffffffffffffff82111715610bcd57610bcc610b76565b5b80604052505050565b6000610be0610912565b9050610bec8282610ba5565b919050565b600067ffffffffffffffff821115610c0c57610c0b610b76565b5b610c1582610a52565b9050602081019050919050565b82818337600083830152505050565b6000610c44610c3f84610bf1565b610bd6565b905082815260208101848484011115610c6057610c5f610b71565b5b610c6b848285610c22565b509392505050565b600082601f830112610c8857610c87610b6c565b5b8135610c98848260208601610c31565b91505092915050565b60008060008060808587031215610cbb57610cba61091c565b5b6000610cc987828801610947565b945050602085013567ffffffffffffffff811115610cea57610ce9610921565b5b610cf687828801610c73565b935050604085013567ffffffffffffffff811115610d1757610d16610921565b5b610d2387828801610c73565b925050606085013567ffffffffffffffff811115610d4457610d43610921565b5b610d5087828801610c73565b91505092959194509250565b600080600060608486031215610d7557610d7461091c565b5b600084013567ffffffffffffffff811115610d9357610d92610921565b5b610d9f86828701610c73565b935050602084013567ffffffffffffffff811115610dc057610dbf610921565b5b610dcc86828701610c73565b925050604084013567ffffffffffffffff811115610ded57610dec610921565b5b610df986828701610c73565b9150509250925092565b600082825260208201905092915050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000610e4a601183610e03565b9150610e5582610e14565b602082019050919050565b60006020820190508181036000830152610e7981610e3d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610ec757607f821691505b60208210811415610edb57610eda610e80565b5b50919050565b60008190508160005260206000209050919050565b60008154610f0381610eaf565b610f0d8186610e03565b94506001821660008114610f285760018114610f3a57610f6d565b60ff1983168652602086019350610f6d565b610f4385610ee1565b60005b83811015610f6557815481890152600182019150602081019050610f46565b808801955050505b50505092915050565b600060a082019050610f8b6000830188610989565b610f986020830187610b42565b8181036040830152610faa8186610ef6565b90508181036060830152610fbe8185610ef6565b90508181036080830152610fd28184610ef6565b90509695505050505050565b6000610fe982610a03565b610ff38185610e03565b9350611003818560208601610a1f565b61100c81610a52565b840191505092915050565b600060a08201905061102c6000830188610989565b6110396020830187610b42565b818103604083015261104b8186610fde565b9050818103606083015261105f8185610fde565b905081810360808301526110738184610fde565b90509695505050505050565b7f457468657220666f72206c6f636b757020726571756972656400000000000000600082015250565b60006110b5601983610e03565b91506110c08261107f565b602082019050919050565b600060208201905081810360008301526110e4816110a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061112582610926565b915061113083610926565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611165576111646110eb565b5b82820190509291505056fea26469706673582212205c17795542b2dc53e02fabbc4bfe1bbd5ec1c9f91c380af9fa9fb0f0fc3948c864736f6c63430008090033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xAB444F28 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0xE73173A4 EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xF9A6CBAE EQ PUSH2 0x176 JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x5CADD4A9 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x7BA13680 EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0x887E4B86 EQ PUSH2 0xC9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1A1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x998 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEB SWAP2 SWAP1 PUSH2 0x95C JUMP JUMPDEST PUSH2 0x309 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFD SWAP2 SWAP1 PUSH2 0xB20 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x559 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x128 SWAP2 SWAP1 PUSH2 0xB51 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x158 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x153 SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH2 0x57D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x174 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16F SWAP2 SWAP1 PUSH2 0xD5C JUMP JUMPDEST PUSH2 0x6DB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x182 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x824 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x998 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x242 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x239 SWAP1 PUSH2 0xE60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x54362B36D34EFDDA9F90402E88C73FD5B6D780EA5A94052317E4664B31AACC38 DUP2 CALLER PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x2AF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x2 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x311 PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x38F SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3BB SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x408 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x408 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x430 SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x45C SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4A9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x47E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4A9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x48C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x61E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x615 SWAP1 PUSH2 0xE60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x4 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x645 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP2 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x66D SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP1 PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x695 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP PUSH32 0xFD025D83852F29D01B58FD4B19D8CFE0E12AF0EE9F31A7E273EA765CD4DD8620 DUP5 CALLER DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x6CD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1017 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD CALLVALUE EQ PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x716 SWAP1 PUSH2 0x10CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x3 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x4 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x79C SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x7C6 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x7F0 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP TIMESTAMP PUSH1 0x7 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP1 SLOAD PUSH2 0x819 SWAP2 SWAP1 PUSH2 0x111A JUMP JUMPDEST PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x87B SWAP1 PUSH2 0xEAF JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x89D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x8E4 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x8B6 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x8E4 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x8E4 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x8E3 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x8C8 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0x8F5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x90E JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x8F6 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x939 DUP2 PUSH2 0x926 JUMP JUMPDEST DUP2 EQ PUSH2 0x944 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x956 DUP2 PUSH2 0x930 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x972 JUMPI PUSH2 0x971 PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x980 DUP5 DUP3 DUP6 ADD PUSH2 0x947 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x992 DUP2 PUSH2 0x926 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x989 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9BC DUP2 PUSH2 0x926 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9ED DUP3 PUSH2 0x9C2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9FD DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA3D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA22 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xA4C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA6E DUP3 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xA78 DUP2 DUP6 PUSH2 0xA0E JUMP JUMPDEST SWAP4 POP PUSH2 0xA88 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA1F JUMP JUMPDEST PUSH2 0xA91 DUP2 PUSH2 0xA52 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0xAB4 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x9B3 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0xAC7 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x9F4 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xADF DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0xAF9 DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0xB13 DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB3A DUP2 DUP5 PUSH2 0xA9C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB4B DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB66 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB42 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xBAE DUP3 PUSH2 0xA52 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xBCD JUMPI PUSH2 0xBCC PUSH2 0xB76 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBE0 PUSH2 0x912 JUMP JUMPDEST SWAP1 POP PUSH2 0xBEC DUP3 DUP3 PUSH2 0xBA5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC0C JUMPI PUSH2 0xC0B PUSH2 0xB76 JUMP JUMPDEST JUMPDEST PUSH2 0xC15 DUP3 PUSH2 0xA52 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC44 PUSH2 0xC3F DUP5 PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0xBD6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xC60 JUMPI PUSH2 0xC5F PUSH2 0xB71 JUMP JUMPDEST JUMPDEST PUSH2 0xC6B DUP5 DUP3 DUP6 PUSH2 0xC22 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC88 JUMPI PUSH2 0xC87 PUSH2 0xB6C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC98 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xC31 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xCBB JUMPI PUSH2 0xCBA PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP8 DUP3 DUP9 ADD PUSH2 0x947 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCEA JUMPI PUSH2 0xCE9 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xCF6 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD17 JUMPI PUSH2 0xD16 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD23 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD44 JUMPI PUSH2 0xD43 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD50 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD74 PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD93 JUMPI PUSH2 0xD92 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD9F DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC0 JUMPI PUSH2 0xDBF PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xDCC DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDED JUMPI PUSH2 0xDEC PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xDF9 DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F662064617070000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE4A PUSH1 0x11 DUP4 PUSH2 0xE03 JUMP JUMPDEST SWAP2 POP PUSH2 0xE55 DUP3 PUSH2 0xE14 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE79 DUP2 PUSH2 0xE3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xEC7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xEDB JUMPI PUSH2 0xEDA PUSH2 0xE80 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0xF03 DUP2 PUSH2 0xEAF JUMP JUMPDEST PUSH2 0xF0D DUP2 DUP7 PUSH2 0xE03 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0xF28 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0xF3A JUMPI PUSH2 0xF6D JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP PUSH2 0xF6D JUMP JUMPDEST PUSH2 0xF43 DUP6 PUSH2 0xEE1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF65 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0xF8B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x989 JUMP JUMPDEST PUSH2 0xF98 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xB42 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xFAA DUP2 DUP7 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xFBE DUP2 DUP6 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0xFD2 DUP2 DUP5 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFE9 DUP3 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xFF3 DUP2 DUP6 PUSH2 0xE03 JUMP JUMPDEST SWAP4 POP PUSH2 0x1003 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA1F JUMP JUMPDEST PUSH2 0x100C DUP2 PUSH2 0xA52 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x102C PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x989 JUMP JUMPDEST PUSH2 0x1039 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xB42 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x104B DUP2 DUP7 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x105F DUP2 DUP6 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1073 DUP2 DUP5 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x457468657220666F72206C6F636B757020726571756972656400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10B5 PUSH1 0x19 DUP4 PUSH2 0xE03 JUMP JUMPDEST SWAP2 POP PUSH2 0x10C0 DUP3 PUSH2 0x107F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x10E4 DUP2 PUSH2 0x10A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1125 DUP3 PUSH2 0x926 JUMP JUMPDEST SWAP2 POP PUSH2 0x1130 DUP4 PUSH2 0x926 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1165 JUMPI PUSH2 0x1164 PUSH2 0x10EB JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5C OR PUSH26 0x5542B2DC53E02FABBC4BFE1BBD5EC1C9F91C380AF9FA9FB0F0FC CODECOPY BASEFEE 0xC8 PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ", - "sourceMap": "63:2398:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2009:449;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;188:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1823:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;136:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1423:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;998:419;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;162:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2009:449;2089:10;2068:31;;:9;:17;2078:6;2068:17;;;;;;;;;;;;;;;;;;;;;:31;;;2060:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;2316:84;2323:6;2331:10;2343:7;:15;2351:6;2343:15;;;;;;;;;;;2360:11;:19;2372:6;2360:19;;;;;;;;;;;2381:10;:18;2392:6;2381:18;;;;;;;;;;;2316:84;;;;;;;;;;:::i;:::-;;;;;;;;2418:10;2410:28;;:41;2439:11;;2410:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2009:449;:::o;188:23::-;;;;:::o;1823:180::-;1879:10;;:::i;:::-;1908:88;;;;;;;;1912:6;1908:88;;;;1920:9;:17;1930:6;1920:17;;;;;;;;;;;;;;;;;;;;;1908:88;;;;;;1939:7;:15;1947:6;1939:15;;;;;;;;;;;1908:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1956:11;:19;1968:6;1956:19;;;;;;;;;;;1908:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1977:10;:18;1988:6;1977:18;;;;;;;;;;;1908:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1901:95;;1823:180;;;:::o;136:20::-;;;;;;;;;;;;:::o;1423:394::-;1579:10;1558:31;;:9;:17;1568:6;1558:17;;;;;;;;;;;;;;;;;;;;;:31;;;1550:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;1639:5;1621:7;:15;1629:6;1621:15;;;;;;;;;;;:23;;;;;;;;;;;;:::i;:::-;;1676:9;1654:11;:19;1666:6;1654:19;;;;;;;;;;;:31;;;;;;;;;;;;:::i;:::-;;1716:15;1695:10;:18;1706:6;1695:18;;;;;;;;;;;:36;;;;;;;;;;;;:::i;:::-;;1746:64;1756:6;1764:10;1776:5;1783:9;1794:15;1746:64;;;;;;;;;;:::i;:::-;;;;;;;;1423:394;;;;:::o;998:419::-;1141:11;;1128:9;:24;1120:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1211:10;1192:9;:16;1202:5;;1192:16;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1248:5;1231:7;:14;1239:5;;1231:14;;;;;;;;;;;:22;;;;;;;;;;;;:::i;:::-;;1284:9;1263:11;:18;1275:5;;1263:18;;;;;;;;;;;:30;;;;;;;;;;;;:::i;:::-;;1323:15;1303:10;:17;1314:5;;1303:17;;;;;;;;;;;:35;;;;;;;;;;;;:::i;:::-;;1368:15;1348:10;:17;1359:5;;1348:17;;;;;;;;;;;:35;;;;1409:1;1401:5;;:9;;;;:::i;:::-;1393:5;:17;;;;998:419;;;:::o;162:20::-;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:3:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:108::-;1454:24;1472:5;1454:24;:::i;:::-;1449:3;1442:37;1377:108;;:::o;1491:126::-;1528:7;1568:42;1561:5;1557:54;1546:65;;1491:126;;;:::o;1623:96::-;1660:7;1689:24;1707:5;1689:24;:::i;:::-;1678:35;;1623:96;;;:::o;1725:108::-;1802:24;1820:5;1802:24;:::i;:::-;1797:3;1790:37;1725:108;;:::o;1839:99::-;1891:6;1925:5;1919:12;1909:22;;1839:99;;;:::o;1944:159::-;2018:11;2052:6;2047:3;2040:19;2092:4;2087:3;2083:14;2068:29;;1944:159;;;;:::o;2109:307::-;2177:1;2187:113;2201:6;2198:1;2195:13;2187:113;;;2286:1;2281:3;2277:11;2271:18;2267:1;2262:3;2258:11;2251:39;2223:2;2220:1;2216:10;2211:15;;2187:113;;;2318:6;2315:1;2312:13;2309:101;;;2398:1;2389:6;2384:3;2380:16;2373:27;2309:101;2158:258;2109:307;;;:::o;2422:102::-;2463:6;2514:2;2510:7;2505:2;2498:5;2494:14;2490:28;2480:38;;2422:102;;;:::o;2530:344::-;2608:3;2636:39;2669:5;2636:39;:::i;:::-;2691:61;2745:6;2740:3;2691:61;:::i;:::-;2684:68;;2761:52;2806:6;2801:3;2794:4;2787:5;2783:16;2761:52;:::i;:::-;2838:29;2860:6;2838:29;:::i;:::-;2833:3;2829:39;2822:46;;2612:262;2530:344;;;;:::o;2950:1281::-;3059:3;3095:4;3090:3;3086:14;3183:4;3176:5;3172:16;3166:23;3202:63;3259:4;3254:3;3250:14;3236:12;3202:63;:::i;:::-;3110:165;3361:4;3354:5;3350:16;3344:23;3380:63;3437:4;3432:3;3428:14;3414:12;3380:63;:::i;:::-;3285:168;3538:4;3531:5;3527:16;3521:23;3591:3;3585:4;3581:14;3574:4;3569:3;3565:14;3558:38;3617:73;3685:4;3671:12;3617:73;:::i;:::-;3609:81;;3463:238;3790:4;3783:5;3779:16;3773:23;3843:3;3837:4;3833:14;3826:4;3821:3;3817:14;3810:38;3869:73;3937:4;3923:12;3869:73;:::i;:::-;3861:81;;3711:242;4041:4;4034:5;4030:16;4024:23;4094:3;4088:4;4084:14;4077:4;4072:3;4068:14;4061:38;4120:73;4188:4;4174:12;4120:73;:::i;:::-;4112:81;;3963:241;4221:4;4214:11;;3064:1167;2950:1281;;;;:::o;4237:353::-;4370:4;4408:2;4397:9;4393:18;4385:26;;4457:9;4451:4;4447:20;4443:1;4432:9;4428:17;4421:47;4485:98;4578:4;4569:6;4485:98;:::i;:::-;4477:106;;4237:353;;;;:::o;4596:118::-;4683:24;4701:5;4683:24;:::i;:::-;4678:3;4671:37;4596:118;;:::o;4720:222::-;4813:4;4851:2;4840:9;4836:18;4828:26;;4864:71;4932:1;4921:9;4917:17;4908:6;4864:71;:::i;:::-;4720:222;;;;:::o;4948:117::-;5057:1;5054;5047:12;5071:117;5180:1;5177;5170:12;5194:180;5242:77;5239:1;5232:88;5339:4;5336:1;5329:15;5363:4;5360:1;5353:15;5380:281;5463:27;5485:4;5463:27;:::i;:::-;5455:6;5451:40;5593:6;5581:10;5578:22;5557:18;5545:10;5542:34;5539:62;5536:88;;;5604:18;;:::i;:::-;5536:88;5644:10;5640:2;5633:22;5423:238;5380:281;;:::o;5667:129::-;5701:6;5728:20;;:::i;:::-;5718:30;;5757:33;5785:4;5777:6;5757:33;:::i;:::-;5667:129;;;:::o;5802:308::-;5864:4;5954:18;5946:6;5943:30;5940:56;;;5976:18;;:::i;:::-;5940:56;6014:29;6036:6;6014:29;:::i;:::-;6006:37;;6098:4;6092;6088:15;6080:23;;5802:308;;;:::o;6116:154::-;6200:6;6195:3;6190;6177:30;6262:1;6253:6;6248:3;6244:16;6237:27;6116:154;;;:::o;6276:412::-;6354:5;6379:66;6395:49;6437:6;6395:49;:::i;:::-;6379:66;:::i;:::-;6370:75;;6468:6;6461:5;6454:21;6506:4;6499:5;6495:16;6544:3;6535:6;6530:3;6526:16;6523:25;6520:112;;;6551:79;;:::i;:::-;6520:112;6641:41;6675:6;6670:3;6665;6641:41;:::i;:::-;6360:328;6276:412;;;;;:::o;6708:340::-;6764:5;6813:3;6806:4;6798:6;6794:17;6790:27;6780:122;;6821:79;;:::i;:::-;6780:122;6938:6;6925:20;6963:79;7038:3;7030:6;7023:4;7015:6;7011:17;6963:79;:::i;:::-;6954:88;;6770:278;6708:340;;;;:::o;7054:1305::-;7170:6;7178;7186;7194;7243:3;7231:9;7222:7;7218:23;7214:33;7211:120;;;7250:79;;:::i;:::-;7211:120;7370:1;7395:53;7440:7;7431:6;7420:9;7416:22;7395:53;:::i;:::-;7385:63;;7341:117;7525:2;7514:9;7510:18;7497:32;7556:18;7548:6;7545:30;7542:117;;;7578:79;;:::i;:::-;7542:117;7683:63;7738:7;7729:6;7718:9;7714:22;7683:63;:::i;:::-;7673:73;;7468:288;7823:2;7812:9;7808:18;7795:32;7854:18;7846:6;7843:30;7840:117;;;7876:79;;:::i;:::-;7840:117;7981:63;8036:7;8027:6;8016:9;8012:22;7981:63;:::i;:::-;7971:73;;7766:288;8121:2;8110:9;8106:18;8093:32;8152:18;8144:6;8141:30;8138:117;;;8174:79;;:::i;:::-;8138:117;8279:63;8334:7;8325:6;8314:9;8310:22;8279:63;:::i;:::-;8269:73;;8064:288;7054:1305;;;;;;;:::o;8365:1159::-;8472:6;8480;8488;8537:2;8525:9;8516:7;8512:23;8508:32;8505:119;;;8543:79;;:::i;:::-;8505:119;8691:1;8680:9;8676:17;8663:31;8721:18;8713:6;8710:30;8707:117;;;8743:79;;:::i;:::-;8707:117;8848:63;8903:7;8894:6;8883:9;8879:22;8848:63;:::i;:::-;8838:73;;8634:287;8988:2;8977:9;8973:18;8960:32;9019:18;9011:6;9008:30;9005:117;;;9041:79;;:::i;:::-;9005:117;9146:63;9201:7;9192:6;9181:9;9177:22;9146:63;:::i;:::-;9136:73;;8931:288;9286:2;9275:9;9271:18;9258:32;9317:18;9309:6;9306:30;9303:117;;;9339:79;;:::i;:::-;9303:117;9444:63;9499:7;9490:6;9479:9;9475:22;9444:63;:::i;:::-;9434:73;;9229:288;8365:1159;;;;;:::o;9530:169::-;9614:11;9648:6;9643:3;9636:19;9688:4;9683:3;9679:14;9664:29;;9530:169;;;;:::o;9705:167::-;9845:19;9841:1;9833:6;9829:14;9822:43;9705:167;:::o;9878:366::-;10020:3;10041:67;10105:2;10100:3;10041:67;:::i;:::-;10034:74;;10117:93;10206:3;10117:93;:::i;:::-;10235:2;10230:3;10226:12;10219:19;;9878:366;;;:::o;10250:419::-;10416:4;10454:2;10443:9;10439:18;10431:26;;10503:9;10497:4;10493:20;10489:1;10478:9;10474:17;10467:47;10531:131;10657:4;10531:131;:::i;:::-;10523:139;;10250:419;;;:::o;10675:180::-;10723:77;10720:1;10713:88;10820:4;10817:1;10810:15;10844:4;10841:1;10834:15;10861:320;10905:6;10942:1;10936:4;10932:12;10922:22;;10989:1;10983:4;10979:12;11010:18;11000:81;;11066:4;11058:6;11054:17;11044:27;;11000:81;11128:2;11120:6;11117:14;11097:18;11094:38;11091:84;;;11147:18;;:::i;:::-;11091:84;10912:269;10861:320;;;:::o;11187:141::-;11236:4;11259:3;11251:11;;11282:3;11279:1;11272:14;11316:4;11313:1;11303:18;11295:26;;11187:141;;;:::o;11358:802::-;11443:3;11480:5;11474:12;11509:36;11535:9;11509:36;:::i;:::-;11561:71;11625:6;11620:3;11561:71;:::i;:::-;11554:78;;11663:1;11652:9;11648:17;11679:1;11674:135;;;;11823:1;11818:336;;;;11641:513;;11674:135;11758:4;11754:9;11743;11739:25;11734:3;11727:38;11794:4;11789:3;11785:14;11778:21;;11674:135;;11818:336;11885:38;11917:5;11885:38;:::i;:::-;11945:1;11959:154;11973:6;11970:1;11967:13;11959:154;;;12047:7;12041:14;12037:1;12032:3;12028:11;12021:35;12097:1;12088:7;12084:15;12073:26;;11995:4;11992:1;11988:12;11983:17;;11959:154;;;12142:1;12137:3;12133:11;12126:18;;11825:329;;11641:513;;11447:713;;11358:802;;;;:::o;12166:919::-;12422:4;12460:3;12449:9;12445:19;12437:27;;12474:71;12542:1;12531:9;12527:17;12518:6;12474:71;:::i;:::-;12555:72;12623:2;12612:9;12608:18;12599:6;12555:72;:::i;:::-;12674:9;12668:4;12664:20;12659:2;12648:9;12644:18;12637:48;12702:75;12772:4;12763:6;12702:75;:::i;:::-;12694:83;;12824:9;12818:4;12814:20;12809:2;12798:9;12794:18;12787:48;12852:75;12922:4;12913:6;12852:75;:::i;:::-;12844:83;;12975:9;12969:4;12965:20;12959:3;12948:9;12944:19;12937:49;13003:75;13073:4;13064:6;13003:75;:::i;:::-;12995:83;;12166:919;;;;;;;;:::o;13091:364::-;13179:3;13207:39;13240:5;13207:39;:::i;:::-;13262:71;13326:6;13321:3;13262:71;:::i;:::-;13255:78;;13342:52;13387:6;13382:3;13375:4;13368:5;13364:16;13342:52;:::i;:::-;13419:29;13441:6;13419:29;:::i;:::-;13414:3;13410:39;13403:46;;13183:272;13091:364;;;;:::o;13461:937::-;13726:4;13764:3;13753:9;13749:19;13741:27;;13778:71;13846:1;13835:9;13831:17;13822:6;13778:71;:::i;:::-;13859:72;13927:2;13916:9;13912:18;13903:6;13859:72;:::i;:::-;13978:9;13972:4;13968:20;13963:2;13952:9;13948:18;13941:48;14006:78;14079:4;14070:6;14006:78;:::i;:::-;13998:86;;14131:9;14125:4;14121:20;14116:2;14105:9;14101:18;14094:48;14159:78;14232:4;14223:6;14159:78;:::i;:::-;14151:86;;14285:9;14279:4;14275:20;14269:3;14258:9;14254:19;14247:49;14313:78;14386:4;14377:6;14313:78;:::i;:::-;14305:86;;13461:937;;;;;;;;:::o;14404:175::-;14544:27;14540:1;14532:6;14528:14;14521:51;14404:175;:::o;14585:366::-;14727:3;14748:67;14812:2;14807:3;14748:67;:::i;:::-;14741:74;;14824:93;14913:3;14824:93;:::i;:::-;14942:2;14937:3;14933:12;14926:19;;14585:366;;;:::o;14957:419::-;15123:4;15161:2;15150:9;15146:18;15138:26;;15210:9;15204:4;15200:20;15196:1;15185:9;15181:17;15174:47;15238:131;15364:4;15238:131;:::i;:::-;15230:139;;14957:419;;;:::o;15382:180::-;15430:77;15427:1;15420:88;15527:4;15524:1;15517:15;15551:4;15548:1;15541:15;15568:305;15608:3;15627:20;15645:1;15627:20;:::i;:::-;15622:25;;15661:20;15679:1;15661:20;:::i;:::-;15656:25;;15815:1;15747:66;15743:74;15740:1;15737:81;15734:107;;;15821:18;;:::i;:::-;15734:107;15865:1;15862;15858:9;15851:16;;15568:305;;;;:::o" - }, - "methodIdentifiers": { - "amountToPay()": "7ba13680", - "appID()": "f9a6cbae", - "getDAppData(uint256)": "887e4b86", - "owner()": "8da5cb5b", - "releaseDApp(uint256)": "5cadd4a9", - "submitDApp(string,string,string)": "e73173a4", - "updateDApp(uint256,string,string,string)": "ab444f28" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountToPay\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"NewApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"UpdateApp\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"amountToPay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"appID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"getDAppData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"internalType\":\"struct NotUpgradableStore.App\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"releaseDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"submitDApp\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"updateDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/NotUpgradableStore.sol\":\"NotUpgradableStore\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/NotUpgradableStore.sol\":{\"keccak256\":\"0xb42cfd5d2e6dfd7fddf3904b2938fac6fc68ae949f6c078ed872ef877298e284\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://9fab65761f1b32611ceded657da604fb503c716c09818531f72e2e9cd9d16932\",\"dweb:/ipfs/QmXnb5W9v1qbeL9ifJMA8Gx139GoMy8vdfsYwMzRKJjN5N\"]}},\"version\":1}" - } - } - }, - "sources": { - "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "exportedSymbols": { - "Initializable": [ - 45 - ] - }, - "id": 46, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "98:23:0" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "Initializable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 2, - "nodeType": "StructuredDocumentation", - "src": "123:1490:0", - "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To initialize the implementation contract, you can either invoke the\n initializer manually, or you can include a constructor to automatically mark it as initialized when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() initializer {}\n ```\n ====" - }, - "fullyImplemented": true, - "id": 45, - "linearizedBaseContracts": [ - 45 - ], - "name": "Initializable", - "nameLocation": "1632:13:0", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "documentation": { - "id": 3, - "nodeType": "StructuredDocumentation", - "src": "1652:73:0", - "text": " @dev Indicates that the contract has been initialized." - }, - "id": 5, - "mutability": "mutable", - "name": "_initialized", - "nameLocation": "1743:12:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "1730:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1730:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 6, - "nodeType": "StructuredDocumentation", - "src": "1762:91:0", - "text": " @dev Indicates that the contract is in the process of being initialized." - }, - "id": 8, - "mutability": "mutable", - "name": "_initializing", - "nameLocation": "1871:13:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "1858:26:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1858:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "private" - }, - { - "body": { - "id": 43, - "nodeType": "Block", - "src": "2012:348:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 15, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2030:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "id": 14, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2047:13:0", - "subExpression": { - "id": 13, - "name": "_initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "2048:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2030:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 16, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2062:48:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", - "typeString": "literal_string \"Initializable: contract is already initialized\"" - }, - "value": "Initializable: contract is already initialized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", - "typeString": "literal_string \"Initializable: contract is already initialized\"" - } - ], - "id": 11, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2022:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 17, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2022:89:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18, - "nodeType": "ExpressionStatement", - "src": "2022:89:0" - }, - { - "assignments": [ - 20 - ], - "declarations": [ - { - "constant": false, - "id": 20, - "mutability": "mutable", - "name": "isTopLevelCall", - "nameLocation": "2127:14:0", - "nodeType": "VariableDeclaration", - "scope": 43, - "src": "2122:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2122:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 23, - "initialValue": { - "id": 22, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2144:14:0", - "subExpression": { - "id": 21, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2145:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2122:36:0" - }, - { - "condition": { - "id": 24, - "name": "isTopLevelCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "2172:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34, - "nodeType": "IfStatement", - "src": "2168:98:0", - "trueBody": { - "id": 33, - "nodeType": "Block", - "src": "2188:78:0", - "statements": [ - { - "expression": { - "id": 27, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 25, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2202:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 26, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2218:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2202:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 28, - "nodeType": "ExpressionStatement", - "src": "2202:20:0" - }, - { - "expression": { - "id": 31, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 29, - "name": "_initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "2236:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2251:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2236:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32, - "nodeType": "ExpressionStatement", - "src": "2236:19:0" - } - ] - } - }, - { - "id": 35, - "nodeType": "PlaceholderStatement", - "src": "2276:1:0" - }, - { - "condition": { - "id": 36, - "name": "isTopLevelCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "2292:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 42, - "nodeType": "IfStatement", - "src": "2288:66:0", - "trueBody": { - "id": 41, - "nodeType": "Block", - "src": "2308:46:0", - "statements": [ - { - "expression": { - "id": 39, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 37, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2322:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 38, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2338:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2322:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 40, - "nodeType": "ExpressionStatement", - "src": "2322:21:0" - } - ] - } - } - ] - }, - "documentation": { - "id": 9, - "nodeType": "StructuredDocumentation", - "src": "1891:93:0", - "text": " @dev Modifier to protect an initializer function from being invoked twice." - }, - "id": 44, - "name": "initializer", - "nameLocation": "1998:11:0", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 10, - "nodeType": "ParameterList", - "parameters": [], - "src": "2009:2:0" - }, - "src": "1989:371:0", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 46, - "src": "1614:748:0", - "usedErrors": [] - } - ], - "src": "98:2265:0" - }, - "id": 0 - }, - "contracts/DAppStore.sol": { - "ast": { - "absolutePath": "contracts/DAppStore.sol", - "exportedSymbols": { - "DAppStore": [ - 350 - ], - "Initializable": [ - 45 - ] - }, - "id": 351, - "license": "Unlicense", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 47, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "37:23:1" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "id": 48, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 351, - "sourceUnit": 46, - "src": "62:75:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 49, - "name": "Initializable", - "nodeType": "IdentifierPath", - "referencedDeclaration": 45, - "src": "161:13:1" - }, - "id": 50, - "nodeType": "InheritanceSpecifier", - "src": "161:13:1" - } - ], - "canonicalName": "DAppStore", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 350, - "linearizedBaseContracts": [ - 350, - 45 - ], - "name": "DAppStore", - "nameLocation": "148:9:1", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "8da5cb5b", - "id": 52, - "mutability": "mutable", - "name": "owner", - "nameLocation": "196:5:1", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "181:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "181:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "f9a6cbae", - "id": 54, - "mutability": "mutable", - "name": "appID", - "nameLocation": "222:5:1", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "207:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 53, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "207:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7ba13680", - "id": 56, - "mutability": "mutable", - "name": "amountToPay", - "nameLocation": "245:11:1", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "233:23:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 55, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "233:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 60, - "mutability": "mutable", - "name": "appOwners", - "nameLocation": "287:9:1", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "262:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 59, - "keyType": { - "id": 57, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "270:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "262:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 58, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "278:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64, - "mutability": "mutable", - "name": "appName", - "nameLocation": "326:7:1", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "302:31:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 63, - "keyType": { - "id": 61, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "310:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "302:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 62, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "318:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "363:11:1", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "339:35:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 67, - "keyType": { - "id": 65, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "347:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "339:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 66, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "355:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 72, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "404:10:1", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "380:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 71, - "keyType": { - "id": 69, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "388:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "380:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 70, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "396:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76, - "mutability": "mutable", - "name": "submitTime", - "nameLocation": "442:10:1", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "420:32:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 75, - "keyType": { - "id": 73, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "428:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "420:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 74, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "436:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 80, - "mutability": "mutable", - "name": "appVerified", - "nameLocation": "480:11:1", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "458:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "typeName": { - "id": 79, - "keyType": { - "id": 77, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "466:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "458:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 78, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "474:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "visibility": "internal" - }, - { - "anonymous": false, - "id": 92, - "name": "NewApp", - "nameLocation": "504:6:1", - "nodeType": "EventDefinition", - "parameters": { - "id": 91, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 82, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "516:5:1", - "nodeType": "VariableDeclaration", - "scope": 92, - "src": "511:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 81, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "511:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 84, - "indexed": false, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "531:8:1", - "nodeType": "VariableDeclaration", - "scope": 92, - "src": "523:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "523:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "indexed": false, - "mutability": "mutable", - "name": "appName", - "nameLocation": "548:7:1", - "nodeType": "VariableDeclaration", - "scope": 92, - "src": "541:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 85, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "541:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 88, - "indexed": false, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "564:11:1", - "nodeType": "VariableDeclaration", - "scope": 92, - "src": "557:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 87, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "557:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 90, - "indexed": false, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "584:10:1", - "nodeType": "VariableDeclaration", - "scope": 92, - "src": "577:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 89, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "510:85:1" - }, - "src": "498:98:1" - }, - { - "anonymous": false, - "id": 104, - "name": "UpdateApp", - "nameLocation": "607:9:1", - "nodeType": "EventDefinition", - "parameters": { - "id": 103, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "622:5:1", - "nodeType": "VariableDeclaration", - "scope": 104, - "src": "617:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 93, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "617:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 96, - "indexed": false, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "637:8:1", - "nodeType": "VariableDeclaration", - "scope": 104, - "src": "629:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 95, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "629:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 98, - "indexed": false, - "mutability": "mutable", - "name": "appName", - "nameLocation": "654:7:1", - "nodeType": "VariableDeclaration", - "scope": 104, - "src": "647:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 97, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "647:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "indexed": false, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "670:11:1", - "nodeType": "VariableDeclaration", - "scope": 104, - "src": "663:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 99, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "663:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 102, - "indexed": false, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "690:10:1", - "nodeType": "VariableDeclaration", - "scope": 104, - "src": "683:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 101, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "683:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "616:85:1" - }, - "src": "601:101:1" - }, - { - "anonymous": false, - "id": 108, - "name": "ReleaseApp", - "nameLocation": "713:10:1", - "nodeType": "EventDefinition", - "parameters": { - "id": 107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 106, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "729:5:1", - "nodeType": "VariableDeclaration", - "scope": 108, - "src": "724:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 105, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "724:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "723:12:1" - }, - "src": "707:29:1" - }, - { - "anonymous": false, - "id": 112, - "name": "VerifyApp", - "nameLocation": "747:9:1", - "nodeType": "EventDefinition", - "parameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "762:5:1", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "757:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 109, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "757:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "756:12:1" - }, - "src": "741:28:1" - }, - { - "body": { - "id": 123, - "nodeType": "Block", - "src": "795:71:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 115, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "814:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "814:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 117, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "828:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "814:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4f6e6c79206f776e6572", - "id": 119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "835:12:1", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_17d9f114efaa93d67eedad749dd7fd16a6895ff93e28b7a30c667a069f2ed42d", - "typeString": "literal_string \"Only owner\"" - }, - "value": "Only owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_17d9f114efaa93d67eedad749dd7fd16a6895ff93e28b7a30c667a069f2ed42d", - "typeString": "literal_string \"Only owner\"" - } - ], - "id": 114, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "805:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "805:43:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 121, - "nodeType": "ExpressionStatement", - "src": "805:43:1" - }, - { - "id": 122, - "nodeType": "PlaceholderStatement", - "src": "858:1:1" - } - ] - }, - "id": 124, - "name": "_onlyOwner", - "nameLocation": "784:10:1", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 113, - "nodeType": "ParameterList", - "parameters": [], - "src": "795:0:1" - }, - "src": "775:91:1", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 144, - "nodeType": "Block", - "src": "930:133:1", - "statements": [ - { - "expression": { - "id": 133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 131, - "name": "amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "940:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 132, - "name": "_amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 126, - "src": "954:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "940:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 134, - "nodeType": "ExpressionStatement", - "src": "940:26:1" - }, - { - "expression": { - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 135, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "1019:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 136, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1027:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1027:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1019:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 139, - "nodeType": "ExpressionStatement", - "src": "1019:18:1" - }, - { - "expression": { - "id": 142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 140, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1047:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1055:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1047:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 143, - "nodeType": "ExpressionStatement", - "src": "1047:9:1" - } - ] - }, - "functionSelector": "fe4b84df", - "id": 145, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 129, - "kind": "modifierInvocation", - "modifierName": { - "id": 128, - "name": "initializer", - "nodeType": "IdentifierPath", - "referencedDeclaration": 44, - "src": "918:11:1" - }, - "nodeType": "ModifierInvocation", - "src": "918:11:1" - } - ], - "name": "initialize", - "nameLocation": "881:10:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 127, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 126, - "mutability": "mutable", - "name": "_amountToPay", - "nameLocation": "897:12:1", - "nodeType": "VariableDeclaration", - "scope": 145, - "src": "892:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 125, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "892:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "891:19:1" - }, - "returnParameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [], - "src": "930:0:1" - }, - "scope": 350, - "src": "872:191:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "canonicalName": "DAppStore.App", - "id": 156, - "members": [ - { - "constant": false, - "id": 147, - "mutability": "mutable", - "name": "appID", - "nameLocation": "1095:5:1", - "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1090:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1090:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 149, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "1118:8:1", - "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1110:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 148, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1110:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 151, - "mutability": "mutable", - "name": "appName", - "nameLocation": "1143:7:1", - "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1136:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 150, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1136:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 153, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "1167:11:1", - "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1160:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 152, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1160:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 155, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "1195:10:1", - "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1188:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 154, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1188:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "App", - "nameLocation": "1076:3:1", - "nodeType": "StructDefinition", - "scope": 350, - "src": "1069:143:1", - "visibility": "public" - }, - { - "body": { - "id": 218, - "nodeType": "Block", - "src": "1330:404:1", - "statements": [ - { - "expression": { - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 165, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "1414:9:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 167, - "indexExpression": { - "id": 166, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1424:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1414:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 168, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1433:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1433:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1414:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 171, - "nodeType": "ExpressionStatement", - "src": "1414:29:1" - }, - { - "expression": { - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 172, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "1453:7:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 174, - "indexExpression": { - "id": 173, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1461:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1453:14:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 175, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 158, - "src": "1470:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1453:22:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 177, - "nodeType": "ExpressionStatement", - "src": "1453:22:1" - }, - { - "expression": { - "id": 182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 178, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "1485:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 180, - "indexExpression": { - "id": 179, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1497:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1485:18:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 181, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 160, - "src": "1506:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1485:30:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 183, - "nodeType": "ExpressionStatement", - "src": "1485:30:1" - }, - { - "expression": { - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 184, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72, - "src": "1525:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 186, - "indexExpression": { - "id": 185, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1536:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1525:17:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 187, - "name": "_additionalData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 162, - "src": "1545:15:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1525:35:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 189, - "nodeType": "ExpressionStatement", - "src": "1525:35:1" - }, - { - "expression": { - "id": 195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 190, - "name": "submitTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76, - "src": "1570:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 192, - "indexExpression": { - "id": 191, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1581:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1570:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 193, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "1590:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "1590:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1570:35:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 196, - "nodeType": "ExpressionStatement", - "src": "1570:35:1" - }, - { - "eventCall": { - "arguments": [ - { - "id": 198, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1627:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 199, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1634:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1634:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "baseExpression": { - "id": 201, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "1646:7:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 203, - "indexExpression": { - "id": 202, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1654:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1646:14:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 204, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "1662:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 206, - "indexExpression": { - "id": 205, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1674:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1662:18:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 207, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72, - "src": "1682:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 209, - "indexExpression": { - "id": 208, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1693:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1682:17:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 197, - "name": "NewApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "1620:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory,string memory,string memory)" - } - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1620:80:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 211, - "nodeType": "EmitStatement", - "src": "1615:85:1" - }, - { - "expression": { - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 212, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 213, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1718:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1726:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1718:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1710:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 217, - "nodeType": "ExpressionStatement", - "src": "1710:17:1" - } - ] - }, - "functionSelector": "e73173a4", - "id": 219, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "submitDApp", - "nameLocation": "1227:10:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 163, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 158, - "mutability": "mutable", - "name": "_name", - "nameLocation": "1252:5:1", - "nodeType": "VariableDeclaration", - "scope": 219, - "src": "1238:19:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 157, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1238:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 160, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "1273:9:1", - "nodeType": "VariableDeclaration", - "scope": 219, - "src": "1259:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 159, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1259:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 162, - "mutability": "mutable", - "name": "_additionalData", - "nameLocation": "1298:15:1", - "nodeType": "VariableDeclaration", - "scope": 219, - "src": "1284:29:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 161, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1284:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1237:77:1" - }, - "returnParameters": { - "id": 164, - "nodeType": "ParameterList", - "parameters": [], - "src": "1330:0:1" - }, - "scope": 350, - "src": "1218:516:1", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 267, - "nodeType": "Block", - "src": "1857:277:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 231, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "1875:9:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 233, - "indexExpression": { - "id": 232, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "1885:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1875:17:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1896:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1896:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1875:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4e6f74206f776e6572206f662064617070", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1908:19:1", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - }, - "value": "Not owner of dapp" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - } - ], - "id": 230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1867:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1867:61:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "1867:61:1" - }, - { - "expression": { - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 240, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "1938:7:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 242, - "indexExpression": { - "id": 241, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "1946:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1938:15:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 243, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 223, - "src": "1956:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1938:23:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 245, - "nodeType": "ExpressionStatement", - "src": "1938:23:1" - }, - { - "expression": { - "id": 250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 246, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "1971:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 248, - "indexExpression": { - "id": 247, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "1983:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1971:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 249, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "1993:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1971:31:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 251, - "nodeType": "ExpressionStatement", - "src": "1971:31:1" - }, - { - "expression": { - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 252, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72, - "src": "2012:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 254, - "indexExpression": { - "id": 253, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "2023:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2012:18:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 255, - "name": "_additionalData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "2033:15:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2012:36:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 257, - "nodeType": "ExpressionStatement", - "src": "2012:36:1" - }, - { - "eventCall": { - "arguments": [ - { - "id": 259, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "2073:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 260, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2081:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2081:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 262, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 223, - "src": "2093:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 263, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "2100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 264, - "name": "_additionalData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "2111:15:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 258, - "name": "UpdateApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "2063:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory,string memory,string memory)" - } - }, - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2063:64:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 266, - "nodeType": "EmitStatement", - "src": "2058:69:1" - } - ] - }, - "functionSelector": "ab444f28", - "id": 268, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "updateDApp", - "nameLocation": "1749:10:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 221, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "1765:6:1", - "nodeType": "VariableDeclaration", - "scope": 268, - "src": "1760:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 220, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1760:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 223, - "mutability": "mutable", - "name": "_name", - "nameLocation": "1787:5:1", - "nodeType": "VariableDeclaration", - "scope": 268, - "src": "1773:19:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 222, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1773:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 225, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "1808:9:1", - "nodeType": "VariableDeclaration", - "scope": 268, - "src": "1794:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 224, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1794:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 227, - "mutability": "mutable", - "name": "_additionalData", - "nameLocation": "1833:15:1", - "nodeType": "VariableDeclaration", - "scope": 268, - "src": "1819:29:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 226, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1819:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1759:90:1" - }, - "returnParameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [], - "src": "1857:0:1" - }, - "scope": 350, - "src": "1740:394:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 292, - "nodeType": "Block", - "src": "2208:112:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 277, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "2229:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 278, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "2237:9:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 280, - "indexExpression": { - "id": 279, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "2247:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2237:17:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "baseExpression": { - "id": 281, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "2256:7:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 283, - "indexExpression": { - "id": 282, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "2264:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2256:15:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 284, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "2273:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 286, - "indexExpression": { - "id": 285, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "2285:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2273:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 287, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72, - "src": "2294:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 289, - "indexExpression": { - "id": 288, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "2305:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2294:18:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 276, - "name": "App", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "2225:3:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_App_$156_storage_ptr_$", - "typeString": "type(struct DAppStore.App storage pointer)" - } - }, - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2225:88:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$156_memory_ptr", - "typeString": "struct DAppStore.App memory" - } - }, - "functionReturnParameters": 275, - "id": 291, - "nodeType": "Return", - "src": "2218:95:1" - } - ] - }, - "functionSelector": "887e4b86", - "id": 293, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDAppData", - "nameLocation": "2149:11:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 270, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "2166:6:1", - "nodeType": "VariableDeclaration", - "scope": 293, - "src": "2161:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 269, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2161:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2160:13:1" - }, - "returnParameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 293, - "src": "2196:10:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$156_memory_ptr", - "typeString": "struct DAppStore.App" - }, - "typeName": { - "id": 273, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 272, - "name": "App", - "nodeType": "IdentifierPath", - "referencedDeclaration": 156, - "src": "2196:3:1" - }, - "referencedDeclaration": 156, - "src": "2196:3:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$156_storage_ptr", - "typeString": "struct DAppStore.App" - } - }, - "visibility": "internal" - } - ], - "src": "2195:12:1" - }, - "scope": 350, - "src": "2140:180:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 321, - "nodeType": "Block", - "src": "2367:342:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 299, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "2385:9:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 301, - "indexExpression": { - "id": 300, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "2395:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2385:17:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 302, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2406:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2406:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2385:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4e6f74206f776e6572206f662064617070", - "id": 305, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2418:19:1", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - }, - "value": "Not owner of dapp" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - } - ], - "id": 298, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2377:61:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 307, - "nodeType": "ExpressionStatement", - "src": "2377:61:1" - }, - { - "documentation": "The test-version on rinkeby does check for 48h passed.", - "eventCall": { - "arguments": [ - { - "id": 309, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "2644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 308, - "name": "ReleaseApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 108, - "src": "2633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2633:18:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 311, - "nodeType": "EmitStatement", - "src": "2628:23:1" - }, - { - "expression": { - "arguments": [ - { - "id": 318, - "name": "amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "2690:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 314, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2669:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2669:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 313, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2661:8:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 312, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2661:8:1", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2661:19:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "src": "2661:28:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2661:41:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 320, - "nodeType": "ExpressionStatement", - "src": "2661:41:1" - } - ] - }, - "functionSelector": "5cadd4a9", - "id": 322, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "releaseDApp", - "nameLocation": "2335:11:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 295, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "2352:6:1", - "nodeType": "VariableDeclaration", - "scope": 322, - "src": "2347:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2347:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2346:13:1" - }, - "returnParameters": { - "id": 297, - "nodeType": "ParameterList", - "parameters": [], - "src": "2367:0:1" - }, - "scope": 350, - "src": "2326:383:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 348, - "nodeType": "Block", - "src": "2766:142:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 330, - "name": "appVerified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "2784:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 332, - "indexExpression": { - "id": 331, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 324, - "src": "2796:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2784:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "66616c7365", - "id": 333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2807:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2784:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416c7265616479207665726966696564", - "id": 335, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2814:18:1", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5", - "typeString": "literal_string \"Already verified\"" - }, - "value": "Already verified" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5", - "typeString": "literal_string \"Already verified\"" - } - ], - "id": 329, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2776:57:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 337, - "nodeType": "ExpressionStatement", - "src": "2776:57:1" - }, - { - "expression": { - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 338, - "name": "appVerified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "2843:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 340, - "indexExpression": { - "id": 339, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 324, - "src": "2855:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2843:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2865:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2843:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 343, - "nodeType": "ExpressionStatement", - "src": "2843:26:1" - }, - { - "eventCall": { - "arguments": [ - { - "id": 345, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 324, - "src": "2894:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 344, - "name": "VerifyApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2884:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2884:17:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 347, - "nodeType": "EmitStatement", - "src": "2879:22:1" - } - ] - }, - "functionSelector": "1805d79f", - "id": 349, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 327, - "kind": "modifierInvocation", - "modifierName": { - "id": 326, - "name": "_onlyOwner", - "nodeType": "IdentifierPath", - "referencedDeclaration": 124, - "src": "2755:10:1" - }, - "nodeType": "ModifierInvocation", - "src": "2755:10:1" - } - ], - "name": "verifyDApp", - "nameLocation": "2724:10:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 324, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "2740:6:1", - "nodeType": "VariableDeclaration", - "scope": 349, - "src": "2735:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 323, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2735:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2734:13:1" - }, - "returnParameters": { - "id": 328, - "nodeType": "ParameterList", - "parameters": [], - "src": "2766:0:1" - }, - "scope": 350, - "src": "2715:193:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 351, - "src": "139:2772:1", - "usedErrors": [] - } - ], - "src": "37:2875:1" - }, - "id": 1 - }, - "contracts/NotUpgradableStore.sol": { - "ast": { - "absolutePath": "contracts/NotUpgradableStore.sol", - "exportedSymbols": { - "NotUpgradableStore": [ - 615 - ] - }, - "id": 616, - "license": "Unlicense", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 352, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "37:23:2" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "NotUpgradableStore", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 615, - "linearizedBaseContracts": [ - 615 - ], - "name": "NotUpgradableStore", - "nameLocation": "72:18:2", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "8da5cb5b", - "id": 354, - "mutability": "mutable", - "name": "owner", - "nameLocation": "151:5:2", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "136:20:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 353, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "136:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "f9a6cbae", - "id": 356, - "mutability": "mutable", - "name": "appID", - "nameLocation": "177:5:2", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "162:20:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 355, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "162:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7ba13680", - "id": 358, - "mutability": "mutable", - "name": "amountToPay", - "nameLocation": "200:11:2", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "188:23:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 357, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "188:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 362, - "mutability": "mutable", - "name": "appOwners", - "nameLocation": "242:9:2", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "217:34:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 361, - "keyType": { - "id": 359, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "225:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "217:24:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 360, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "233:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 366, - "mutability": "mutable", - "name": "appName", - "nameLocation": "281:7:2", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "257:31:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 365, - "keyType": { - "id": 363, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "265:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "257:23:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 364, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "273:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 370, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "318:11:2", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "294:35:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 369, - "keyType": { - "id": 367, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "302:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "294:23:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 368, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "310:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 374, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "359:10:2", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "335:34:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 373, - "keyType": { - "id": 371, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "343:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "335:23:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 372, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "351:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 378, - "mutability": "mutable", - "name": "submitTime", - "nameLocation": "397:10:2", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "375:32:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 377, - "keyType": { - "id": 375, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "383:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "375:21:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 376, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "391:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "internal" - }, - { - "anonymous": false, - "id": 390, - "name": "NewApp", - "nameLocation": "420:6:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 389, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 380, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "432:5:2", - "nodeType": "VariableDeclaration", - "scope": 390, - "src": "427:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 379, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "427:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 382, - "indexed": false, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "447:8:2", - "nodeType": "VariableDeclaration", - "scope": 390, - "src": "439:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "439:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 384, - "indexed": false, - "mutability": "mutable", - "name": "appName", - "nameLocation": "464:7:2", - "nodeType": "VariableDeclaration", - "scope": 390, - "src": "457:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 383, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "457:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 386, - "indexed": false, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "480:11:2", - "nodeType": "VariableDeclaration", - "scope": 390, - "src": "473:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 385, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "473:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 388, - "indexed": false, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "500:10:2", - "nodeType": "VariableDeclaration", - "scope": 390, - "src": "493:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 387, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "493:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "426:85:2" - }, - "src": "414:98:2" - }, - { - "anonymous": false, - "id": 402, - "name": "UpdateApp", - "nameLocation": "523:9:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 392, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "538:5:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "533:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 391, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "533:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 394, - "indexed": false, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "553:8:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "545:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 393, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "545:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 396, - "indexed": false, - "mutability": "mutable", - "name": "appName", - "nameLocation": "570:7:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "563:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 395, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "563:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 398, - "indexed": false, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "586:11:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "579:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 397, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "579:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 400, - "indexed": false, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "606:10:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "599:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "599:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "532:85:2" - }, - "src": "517:101:2" - }, - { - "body": { - "id": 413, - "nodeType": "Block", - "src": "644:71:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 405, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "663:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "663:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 407, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 354, - "src": "677:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "663:19:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4f6e6c79206f776e6572", - "id": 409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "684:12:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_17d9f114efaa93d67eedad749dd7fd16a6895ff93e28b7a30c667a069f2ed42d", - "typeString": "literal_string \"Only owner\"" - }, - "value": "Only owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_17d9f114efaa93d67eedad749dd7fd16a6895ff93e28b7a30c667a069f2ed42d", - "typeString": "literal_string \"Only owner\"" - } - ], - "id": 404, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "654:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "654:43:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 411, - "nodeType": "ExpressionStatement", - "src": "654:43:2" - }, - { - "id": 412, - "nodeType": "PlaceholderStatement", - "src": "707:1:2" - } - ] - }, - "id": 414, - "name": "_onlyOwner", - "nameLocation": "633:10:2", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 403, - "nodeType": "ParameterList", - "parameters": [], - "src": "644:0:2" - }, - "src": "624:91:2", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 432, - "nodeType": "Block", - "src": "753:90:2", - "statements": [ - { - "expression": { - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 419, - "name": "amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "763:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 420, - "name": "_amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 416, - "src": "777:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "763:26:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 422, - "nodeType": "ExpressionStatement", - "src": "763:26:2" - }, - { - "expression": { - "id": 426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 423, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 354, - "src": "799:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 424, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "807:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "807:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "799:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 427, - "nodeType": "ExpressionStatement", - "src": "799:18:2" - }, - { - "expression": { - "id": 430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 428, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "827:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "835:1:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "827:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 431, - "nodeType": "ExpressionStatement", - "src": "827:9:2" - } - ] - }, - "id": 433, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 417, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 416, - "mutability": "mutable", - "name": "_amountToPay", - "nameLocation": "739:12:2", - "nodeType": "VariableDeclaration", - "scope": 433, - "src": "734:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 415, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "734:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "733:19:2" - }, - "returnParameters": { - "id": 418, - "nodeType": "ParameterList", - "parameters": [], - "src": "753:0:2" - }, - "scope": 615, - "src": "721:122:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "canonicalName": "NotUpgradableStore.App", - "id": 444, - "members": [ - { - "constant": false, - "id": 435, - "mutability": "mutable", - "name": "appID", - "nameLocation": "875:5:2", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "870:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 434, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "870:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 437, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "898:8:2", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "890:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "890:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 439, - "mutability": "mutable", - "name": "appName", - "nameLocation": "923:7:2", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "916:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 438, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "916:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 441, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "947:11:2", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "940:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 440, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "940:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 443, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "975:10:2", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "968:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 442, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "968:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "App", - "nameLocation": "856:3:2", - "nodeType": "StructDefinition", - "scope": 615, - "src": "849:143:2", - "visibility": "public" - }, - { - "body": { - "id": 499, - "nodeType": "Block", - "src": "1110:307:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 454, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1128:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "src": "1128:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 456, - "name": "amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "1141:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1128:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "457468657220666f72206c6f636b7570207265717569726564", - "id": 458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1154:27:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948", - "typeString": "literal_string \"Ether for lockup required\"" - }, - "value": "Ether for lockup required" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948", - "typeString": "literal_string \"Ether for lockup required\"" - } - ], - "id": 453, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1120:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1120:62:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 460, - "nodeType": "ExpressionStatement", - "src": "1120:62:2" - }, - { - "expression": { - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 461, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 362, - "src": "1192:9:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 463, - "indexExpression": { - "id": 462, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "1202:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1192:16:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 464, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1211:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1211:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1192:29:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 467, - "nodeType": "ExpressionStatement", - "src": "1192:29:2" - }, - { - "expression": { - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 468, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "1231:7:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 470, - "indexExpression": { - "id": 469, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "1239:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1231:14:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 471, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 446, - "src": "1248:5:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1231:22:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 473, - "nodeType": "ExpressionStatement", - "src": "1231:22:2" - }, - { - "expression": { - "id": 478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 474, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 370, - "src": "1263:11:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 476, - "indexExpression": { - "id": 475, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "1275:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1263:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 477, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 448, - "src": "1284:9:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1263:30:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 479, - "nodeType": "ExpressionStatement", - "src": "1263:30:2" - }, - { - "expression": { - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 480, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 374, - "src": "1303:10:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 482, - "indexExpression": { - "id": 481, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "1314:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1303:17:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 483, - "name": "_additionalData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "1323:15:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1303:35:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 485, - "nodeType": "ExpressionStatement", - "src": "1303:35:2" - }, - { - "expression": { - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 486, - "name": "submitTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 378, - "src": "1348:10:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 488, - "indexExpression": { - "id": 487, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "1359:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1348:17:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 489, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "1368:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "1368:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1348:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 492, - "nodeType": "ExpressionStatement", - "src": "1348:35:2" - }, - { - "expression": { - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 493, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "1393:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 494, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "1401:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1409:1:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1401:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1393:17:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 498, - "nodeType": "ExpressionStatement", - "src": "1393:17:2" - } - ] - }, - "functionSelector": "e73173a4", - "id": 500, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "submitDApp", - "nameLocation": "1007:10:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 446, - "mutability": "mutable", - "name": "_name", - "nameLocation": "1032:5:2", - "nodeType": "VariableDeclaration", - "scope": 500, - "src": "1018:19:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 445, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1018:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 448, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "1053:9:2", - "nodeType": "VariableDeclaration", - "scope": 500, - "src": "1039:23:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 447, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1039:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 450, - "mutability": "mutable", - "name": "_additionalData", - "nameLocation": "1078:15:2", - "nodeType": "VariableDeclaration", - "scope": 500, - "src": "1064:29:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 449, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1064:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1017:77:2" - }, - "returnParameters": { - "id": 452, - "nodeType": "ParameterList", - "parameters": [], - "src": "1110:0:2" - }, - "scope": 615, - "src": "998:419:2", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 548, - "nodeType": "Block", - "src": "1540:277:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 512, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 362, - "src": "1558:9:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 514, - "indexExpression": { - "id": 513, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 502, - "src": "1568:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1558:17:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 515, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1579:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1579:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1558:31:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4e6f74206f776e6572206f662064617070", - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1591:19:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - }, - "value": "Not owner of dapp" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - } - ], - "id": 511, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1550:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1550:61:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 520, - "nodeType": "ExpressionStatement", - "src": "1550:61:2" - }, - { - "expression": { - "id": 525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 521, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "1621:7:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 523, - "indexExpression": { - "id": 522, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 502, - "src": "1629:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1621:15:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 524, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 504, - "src": "1639:5:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1621:23:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 526, - "nodeType": "ExpressionStatement", - "src": "1621:23:2" - }, - { - "expression": { - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 527, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 370, - "src": "1654:11:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 529, - "indexExpression": { - "id": 528, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 502, - "src": "1666:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1654:19:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 530, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "1676:9:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1654:31:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 532, - "nodeType": "ExpressionStatement", - "src": "1654:31:2" - }, - { - "expression": { - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 533, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 374, - "src": "1695:10:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 535, - "indexExpression": { - "id": 534, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 502, - "src": "1706:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1695:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 536, - "name": "_additionalData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "1716:15:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1695:36:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 538, - "nodeType": "ExpressionStatement", - "src": "1695:36:2" - }, - { - "eventCall": { - "arguments": [ - { - "id": 540, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 502, - "src": "1756:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 541, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1764:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1764:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 543, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 504, - "src": "1776:5:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 544, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "1783:9:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 545, - "name": "_additionalData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "1794:15:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 539, - "name": "UpdateApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 402, - "src": "1746:9:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory,string memory,string memory)" - } - }, - "id": 546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1746:64:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 547, - "nodeType": "EmitStatement", - "src": "1741:69:2" - } - ] - }, - "functionSelector": "ab444f28", - "id": 549, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "updateDApp", - "nameLocation": "1432:10:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 502, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "1448:6:2", - "nodeType": "VariableDeclaration", - "scope": 549, - "src": "1443:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 501, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1443:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 504, - "mutability": "mutable", - "name": "_name", - "nameLocation": "1470:5:2", - "nodeType": "VariableDeclaration", - "scope": 549, - "src": "1456:19:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 503, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1456:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 506, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "1491:9:2", - "nodeType": "VariableDeclaration", - "scope": 549, - "src": "1477:23:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 505, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1477:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 508, - "mutability": "mutable", - "name": "_additionalData", - "nameLocation": "1516:15:2", - "nodeType": "VariableDeclaration", - "scope": 549, - "src": "1502:29:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 507, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1502:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1442:90:2" - }, - "returnParameters": { - "id": 510, - "nodeType": "ParameterList", - "parameters": [], - "src": "1540:0:2" - }, - "scope": 615, - "src": "1423:394:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 573, - "nodeType": "Block", - "src": "1891:112:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 558, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 551, - "src": "1912:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 559, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 362, - "src": "1920:9:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 561, - "indexExpression": { - "id": 560, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 551, - "src": "1930:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1920:17:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "baseExpression": { - "id": 562, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "1939:7:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 564, - "indexExpression": { - "id": 563, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 551, - "src": "1947:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1939:15:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 565, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 370, - "src": "1956:11:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 567, - "indexExpression": { - "id": 566, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 551, - "src": "1968:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1956:19:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 568, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 374, - "src": "1977:10:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 570, - "indexExpression": { - "id": 569, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 551, - "src": "1988:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1977:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 557, - "name": "App", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 444, - "src": "1908:3:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_App_$444_storage_ptr_$", - "typeString": "type(struct NotUpgradableStore.App storage pointer)" - } - }, - "id": 571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1908:88:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$444_memory_ptr", - "typeString": "struct NotUpgradableStore.App memory" - } - }, - "functionReturnParameters": 556, - "id": 572, - "nodeType": "Return", - "src": "1901:95:2" - } - ] - }, - "functionSelector": "887e4b86", - "id": 574, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDAppData", - "nameLocation": "1832:11:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 551, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "1849:6:2", - "nodeType": "VariableDeclaration", - "scope": 574, - "src": "1844:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 550, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1844:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1843:13:2" - }, - "returnParameters": { - "id": 556, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 555, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 574, - "src": "1879:10:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$444_memory_ptr", - "typeString": "struct NotUpgradableStore.App" - }, - "typeName": { - "id": 554, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 553, - "name": "App", - "nodeType": "IdentifierPath", - "referencedDeclaration": 444, - "src": "1879:3:2" - }, - "referencedDeclaration": 444, - "src": "1879:3:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$444_storage_ptr", - "typeString": "struct NotUpgradableStore.App" - } - }, - "visibility": "internal" - } - ], - "src": "1878:12:2" - }, - "scope": 615, - "src": "1823:180:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 613, - "nodeType": "Block", - "src": "2050:408:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 580, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 362, - "src": "2068:9:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 582, - "indexExpression": { - "id": 581, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "2078:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2068:17:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 583, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2089:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2089:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2068:31:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4e6f74206f776e6572206f662064617070", - "id": 586, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2101:19:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - }, - "value": "Not owner of dapp" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - } - ], - "id": 579, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2060:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2060:61:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 588, - "nodeType": "ExpressionStatement", - "src": "2060:61:2" - }, - { - "documentation": "The test-version on rinkeby does check for 48h passed.", - "eventCall": { - "arguments": [ - { - "id": 590, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "2323:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 591, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2331:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2331:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "baseExpression": { - "id": 593, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "2343:7:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 595, - "indexExpression": { - "id": 594, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "2351:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2343:15:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 596, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 370, - "src": "2360:11:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 598, - "indexExpression": { - "id": 597, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "2372:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2360:19:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 599, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 374, - "src": "2381:10:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 601, - "indexExpression": { - "id": 600, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "2392:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2381:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 589, - "name": "NewApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "2316:6:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory,string memory,string memory)" - } - }, - "id": 602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2316:84:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 603, - "nodeType": "EmitStatement", - "src": "2311:89:2" - }, - { - "expression": { - "arguments": [ - { - "id": 610, - "name": "amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "2439:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 606, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2418:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2418:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 605, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2410:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 604, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2410:8:2", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2410:19:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "src": "2410:28:2", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2410:41:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 612, - "nodeType": "ExpressionStatement", - "src": "2410:41:2" - } - ] - }, - "functionSelector": "5cadd4a9", - "id": 614, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "releaseDApp", - "nameLocation": "2018:11:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 576, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "2035:6:2", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "2030:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2030:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2029:13:2" - }, - "returnParameters": { - "id": 578, - "nodeType": "ParameterList", - "parameters": [], - "src": "2050:0:2" - }, - "scope": 615, - "src": "2009:449:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 616, - "src": "63:2398:2", - "usedErrors": [] - } - ], - "src": "37:2425:2" - }, - "id": 2 - } - } - } -} diff --git a/contracts/artifacts/build-info/3f0d2e9e5af6efbb8295c70b3d14824d.json b/contracts/artifacts/build-info/eb8fac9a10c5bb11ac5220c0c402b393.json similarity index 52% rename from contracts/artifacts/build-info/3f0d2e9e5af6efbb8295c70b3d14824d.json rename to contracts/artifacts/build-info/eb8fac9a10c5bb11ac5220c0c402b393.json index 8c478f3..2c5e77e 100644 --- a/contracts/artifacts/build-info/3f0d2e9e5af6efbb8295c70b3d14824d.json +++ b/contracts/artifacts/build-info/eb8fac9a10c5bb11ac5220c0c402b393.json @@ -1,5 +1,5 @@ { - "id": "3f0d2e9e5af6efbb8295c70b3d14824d", + "id": "eb8fac9a10c5bb11ac5220c0c402b393", "_format": "hh-sol-build-info-1", "solcVersion": "0.8.9", "solcLongVersion": "0.8.9+commit.e5eed63a", @@ -7,7 +7,7 @@ "language": "Solidity", "sources": { "contracts/DAppStore.sol": { - "content": "//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\n\ncontract DAppStore is Initializable, AccessControl {\n \n bytes32 public constant ADMIN_ROLE = keccak256(\"ADMIN_ROLE\");\n uint256 public appID;\n uint public amountToPay;\n mapping(uint => address) appOwners;\n mapping(uint => string) appName;\n mapping(uint => string) appIPFSHash;\n mapping(uint => string) appAddData;\n mapping(uint => uint) submitTime;\n mapping(uint => bool) appVerified;\n\n event NewApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n event UpdateApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n event ReleaseApp(uint appID);\n event VerifyApp(uint appID);\n event DeleteApp(uint appID);\n\n function initialize(uint _amountToPay, address[] calldata admins) public initializer {\n amountToPay = _amountToPay;\n for(uint i = 0;i address) appOwners;\n mapping(uint => string) appName;\n mapping(uint => string) appIPFSHash;\n mapping(uint => string) appAddData;\n mapping(uint => uint) submitTime;\n mapping(uint => bool) appVerified;\n\n event NewApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n event UpdateApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n event ReleaseApp(uint appID);\n event VerifyApp(uint appID);\n event DeleteApp(uint appID);\n event StoreUpdate(uint versionCode, string ipfsHash);\n\n function initialize(uint _amountToPay, address[] calldata admins) public initializer {\n amountToPay = _amountToPay;\n for(uint i = 0;iversionCode);\n versionCode = _versionCode;\n currentDAppStoreIPFSHash = _ipfsHash;\n emit StoreUpdate(versionCode, _ipfsHash);\n }\n}\n" }, "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.0 (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To initialize the implementation contract, you can either invoke the\n * initializer manually, or you can include a constructor to automatically mark it as initialized when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() initializer {}\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Indicates that the contract has been initialized.\n */\n bool private _initialized;\n\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool private _initializing;\n\n /**\n * @dev Modifier to protect an initializer function from being invoked twice.\n */\n modifier initializer() {\n require(_initializing || !_initialized, \"Initializable: contract is already initialized\");\n\n bool isTopLevelCall = !_initializing;\n if (isTopLevelCall) {\n _initializing = true;\n _initialized = true;\n }\n\n _;\n\n if (isTopLevelCall) {\n _initializing = false;\n }\n }\n}\n" @@ -29,6 +29,9 @@ }, "@openzeppelin/contracts/utils/introspection/IERC165.sol": { "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "contracts/NotUpgradableStore.sol": { + "content": "//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\n\ncontract NotUpgradableStore {\n // TODO: Replace with real address\n address public owner;\n uint256 public appID;\n uint public amountToPay;\n mapping(uint => address) appOwners;\n mapping(uint => string) appName;\n mapping(uint => string) appIPFSHash;\n mapping(uint => string) appAddData;\n mapping(uint => uint) submitTime;\n\n event NewApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n event UpdateApp(uint appID, address appOwner, string appName, string appIPFSHash, string appAddData);\n\n modifier _onlyOwner {\n require (msg.sender == owner, \"Only owner\");\n _;\n }\n\n constructor (uint _amountToPay) {\n amountToPay = _amountToPay;\n owner = msg.sender;\n appID = 0;\n }\n\n struct App {\n uint appID;\n address appOwner;\n string appName;\n string appIPFSHash;\n string appAddData;\n }\n\n function submitDApp(string memory _name, string memory _ipfsHash, string memory _additionalData) public payable {\n require(msg.value == amountToPay, \"Ether for lockup required\");\n appOwners[appID] = msg.sender;\n appName[appID] = _name;\n appIPFSHash[appID] = _ipfsHash;\n appAddData[appID] = _additionalData;\n submitTime[appID] = block.timestamp;\n appID = appID + 1;\n }\n\n function updateDApp(uint _appID, string memory _name, string memory _ipfsHash, string memory _additionalData) public {\n require(appOwners[_appID] == msg.sender, \"Not owner of dapp\");\n appName[_appID] = _name;\n appIPFSHash[_appID] = _ipfsHash;\n appAddData[_appID] = _additionalData;\n emit UpdateApp(_appID, msg.sender, _name, _ipfsHash, _additionalData);\n }\n\n function getDAppData(uint _appID) external view returns(App memory) {\n return App(_appID, appOwners[_appID], appName[_appID], appIPFSHash[_appID], appAddData[_appID]);\n }\n\n function releaseDApp(uint _appID) public {\n require(appOwners[_appID] == msg.sender, \"Not owner of dapp\");\n /**\n The test-version on rinkeby does check for 48h passed.\n */\n //require(submitTime[_appID]+172800 memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct DAppStore.App -> struct DAppStore.App\n function abi_encode_t_struct$_App_$815_memory_ptr_to_t_struct$_App_$815_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0xa0)\n\n {\n // appID\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // appOwner\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // appName\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appIPFSHash\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appAddData\n\n let memberValue0 := mload(add(value, 0x80))\n\n mstore(add(pos, 0x80), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_App_$815_memory_ptr__to_t_struct$_App_$815_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_App_$815_memory_ptr_to_t_struct$_App_$815_memory_ptr_fromStack(value0, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5(memPtr) {\n\n mstore(add(memPtr, 0), \"Already verified\")\n\n }\n\n function abi_encode_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n mstore(add(memPtr, 32), \" roles for self\")\n\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner of dapp\")\n\n }\n\n function abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n mstore(add(memPtr, 32), \"dy initialized\")\n\n }\n\n function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function store_literal_in_memory_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner\")\n\n }\n\n function abi_encode_t_stringliteral_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 9)\n store_literal_in_memory_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, 0x20)\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: account \")\n\n }\n\n function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n end := add(pos, 23)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n mstore(add(memPtr, 0), \" is missing role \")\n\n }\n\n function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n }\n\n function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", - "id": 8, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // string\n function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct DAppStore.App -> struct DAppStore.App\n function abi_encode_t_struct$_App_$829_memory_ptr_to_t_struct$_App_$829_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0xa0)\n\n {\n // appID\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // appOwner\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // appName\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appIPFSHash\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appAddData\n\n let memberValue0 := mload(add(value, 0x80))\n\n mstore(add(pos, 0x80), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_App_$829_memory_ptr__to_t_struct$_App_$829_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_App_$829_memory_ptr_to_t_struct$_App_$829_memory_ptr_fromStack(value0, tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5(memPtr) {\n\n mstore(add(memPtr, 0), \"Already verified\")\n\n }\n\n function abi_encode_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n // string -> string\n function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n\n copy_calldata_to_memory(start, pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_uint256_t_string_calldata_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(value1, value2, tail)\n\n }\n\n function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n mstore(add(memPtr, 32), \" roles for self\")\n\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner of dapp\")\n\n }\n\n function abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n mstore(add(memPtr, 32), \"dy initialized\")\n\n }\n\n function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function store_literal_in_memory_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner\")\n\n }\n\n function abi_encode_t_stringliteral_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 9)\n store_literal_in_memory_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, 0x20)\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: account \")\n\n }\n\n function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n end := add(pos, 23)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n mstore(add(memPtr, 0), \" is missing role \")\n\n }\n\n function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n }\n\n function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 9, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": {}, "linkReferences": {}, - "object": "6080604052600436106101145760003560e01c80637ba13680116100a0578063ab444f2811610064578063ab444f28146103ad578063d547741f146103d6578063e58cdd90146103ff578063e73173a414610428578063f9a6cbae1461044457610114565b80637ba13680146102b4578063887e4b86146102df57806391d148541461031c578063a217fddf14610359578063a920b78c1461038457610114565b806336568abe116100e757806336568abe146101e55780635cadd4a91461020e5780636df693d314610237578063704802751461026057806375b238fc1461028957610114565b806301ffc9a7146101195780631805d79f14610156578063248a9ca31461017f5780632f2ff15d146101bc575b600080fd5b34801561012557600080fd5b50610140600480360381019061013b9190611733565b61046f565b60405161014d919061177b565b60405180910390f35b34801561016257600080fd5b5061017d600480360381019061017891906117cc565b6104e9565b005b34801561018b57600080fd5b506101a660048036038101906101a1919061182f565b6105e9565b6040516101b3919061186b565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de91906118e4565b610609565b005b3480156101f157600080fd5b5061020c600480360381019061020791906118e4565b610632565b005b34801561021a57600080fd5b50610235600480360381019061023091906117cc565b6106b5565b005b34801561024357600080fd5b5061025e600480360381019061025991906117cc565b6107d9565b005b34801561026c57600080fd5b5061028760048036038101906102829190611924565b610813565b005b34801561029557600080fd5b5061029e610873565b6040516102ab919061186b565b60405180910390f35b3480156102c057600080fd5b506102c9610897565b6040516102d69190611960565b60405180910390f35b3480156102eb57600080fd5b50610306600480360381019061030191906117cc565b61089d565b6040516103139190611ab6565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e91906118e4565b610aed565b604051610350919061177b565b60405180910390f35b34801561036557600080fd5b5061036e610b58565b60405161037b919061186b565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a69190611b3d565b610b5f565b005b3480156103b957600080fd5b506103d460048036038101906103cf9190611ccd565b610cbd565b005b3480156103e257600080fd5b506103fd60048036038101906103f891906118e4565b610e1b565b005b34801561040b57600080fd5b5061042660048036038101906104219190611d88565b610e44565b005b610442600480360381019061043d9190611dc8565b610f3b565b005b34801561045057600080fd5b506104596110be565b6040516104669190611960565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104e257506104e1826110c4565b5b9050919050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561051b8161051661112e565b611136565b600015156009600084815260200190815260200160002060009054906101000a900460ff16151514610582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057990611ecc565b60405180910390fd5b60016009600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f19c567786dbc11ad5299760ad5f30bd149748ab79fafc96892ec5c0b0b72b735826040516105dd9190611960565b60405180910390a15050565b600060016000838152602001908152602001600020600101549050919050565b610612826105e9565b6106238161061e61112e565b611136565b61062d83836111d3565b505050565b61063a61112e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90611f5e565b60405180910390fd5b6106b182826112b3565b5050565b3373ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074d90611fca565b60405180910390fd5b7f429e5a8f4e1289616a7ca758e14bd7070bbdb21d11f443824c6738d41b4432c2816040516107859190611960565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6003549081150290604051600060405180830381858888f193505050501580156107d5573d6000803e3d6000fd5b5050565b7f776ec9d2ad2a989538db0c4f163462480d393f71e37a4ffd62689425ec14a08e816040516108089190611960565b60405180910390a150565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756108458161084061112e565b611136565b61086f7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583610609565b5050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60035481565b6108a56115df565b6040518060a001604052808381526020016004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160056000858152602001908152602001600020805461092390612019565b80601f016020809104026020016040519081016040528092919081815260200182805461094f90612019565b801561099c5780601f106109715761010080835404028352916020019161099c565b820191906000526020600020905b81548152906001019060200180831161097f57829003601f168201915b505050505081526020016006600085815260200190815260200160002080546109c490612019565b80601f01602080910402602001604051908101604052809291908181526020018280546109f090612019565b8015610a3d5780601f10610a1257610100808354040283529160200191610a3d565b820191906000526020600020905b815481529060010190602001808311610a2057829003601f168201915b50505050508152602001600760008581526020019081526020016000208054610a6590612019565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9190612019565b8015610ade5780601f10610ab357610100808354040283529160200191610ade565b820191906000526020600020905b815481529060010190602001808311610ac157829003601f168201915b50505050508152509050919050565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b600060019054906101000a900460ff1680610b85575060008054906101000a900460ff16155b610bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbb906120bd565b60405180910390fd5b60008060019054906101000a900460ff161590508015610c14576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8360038190555060005b83839050811015610c8d57610c7a7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775858584818110610c6057610c5f6120dd565b5b9050602002016020810190610c759190611924565b611395565b8080610c859061213b565b915050610c1e565b5060006002819055508015610cb75760008060016101000a81548160ff0219169083151502179055505b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166004600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5590611fca565b60405180910390fd5b82600560008681526020019081526020016000209080519060200190610d85929190611624565b5081600660008681526020019081526020016000209080519060200190610dad929190611624565b5080600760008681526020019081526020016000209080519060200190610dd5929190611624565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd86208433858585604051610e0d9594939291906121cc565b60405180910390a150505050565b610e24826105e9565b610e3581610e3061112e565b611136565b610e3f83836112b3565b505050565b3373ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90612280565b60405180910390fd5b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3360046000600254815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826005600060025481526020019081526020016000209080519060200190610fb8929190611624565b50816006600060025481526020019081526020016000209080519060200190610fe2929190611624565b5080600760006002548152602001908152602001600020908051906020019061100c929190611624565b5042600860006002548152602001908152602001600020819055507f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc386002543360056000600254815260200190815260200160002060066000600254815260200190815260200160002060076000600254815260200190815260200160002060405161109c959493929190612335565b60405180910390a160016002546110b3919061239d565b600281905550505050565b60025481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6111408282610aed565b6111cf576111658173ffffffffffffffffffffffffffffffffffffffff1660146113a3565b6111738360001c60206113a3565b6040516020016111849291906124c7565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c69190612501565b60405180910390fd5b5050565b6111dd8282610aed565b6112af57600180600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061125461112e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6112bd8282610aed565b156113915760006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061133661112e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61139f82826111d3565b5050565b6060600060028360026113b69190612523565b6113c0919061239d565b67ffffffffffffffff8111156113d9576113d8611ba2565b5b6040519080825280601f01601f19166020018201604052801561140b5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611443576114426120dd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106114a7576114a66120dd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026114e79190612523565b6114f1919061239d565b90505b6001811115611591577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611533576115326120dd565b5b1a60f81b82828151811061154a576115496120dd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061158a9061257d565b90506114f4565b50600084146115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc906125f3565b60405180910390fd5b8091505092915050565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b82805461163090612019565b90600052602060002090601f0160209004810192826116525760008555611699565b82601f1061166b57805160ff1916838001178555611699565b82800160010185558215611699579182015b8281111561169857825182559160200191906001019061167d565b5b5090506116a691906116aa565b5090565b5b808211156116c35760008160009055506001016116ab565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611710816116db565b811461171b57600080fd5b50565b60008135905061172d81611707565b92915050565b600060208284031215611749576117486116d1565b5b60006117578482850161171e565b91505092915050565b60008115159050919050565b61177581611760565b82525050565b6000602082019050611790600083018461176c565b92915050565b6000819050919050565b6117a981611796565b81146117b457600080fd5b50565b6000813590506117c6816117a0565b92915050565b6000602082840312156117e2576117e16116d1565b5b60006117f0848285016117b7565b91505092915050565b6000819050919050565b61180c816117f9565b811461181757600080fd5b50565b60008135905061182981611803565b92915050565b600060208284031215611845576118446116d1565b5b60006118538482850161181a565b91505092915050565b611865816117f9565b82525050565b6000602082019050611880600083018461185c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118b182611886565b9050919050565b6118c1816118a6565b81146118cc57600080fd5b50565b6000813590506118de816118b8565b92915050565b600080604083850312156118fb576118fa6116d1565b5b60006119098582860161181a565b925050602061191a858286016118cf565b9150509250929050565b60006020828403121561193a576119396116d1565b5b6000611948848285016118cf565b91505092915050565b61195a81611796565b82525050565b60006020820190506119756000830184611951565b92915050565b61198481611796565b82525050565b611993816118a6565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156119d35780820151818401526020810190506119b8565b838111156119e2576000848401525b50505050565b6000601f19601f8301169050919050565b6000611a0482611999565b611a0e81856119a4565b9350611a1e8185602086016119b5565b611a27816119e8565b840191505092915050565b600060a083016000830151611a4a600086018261197b565b506020830151611a5d602086018261198a565b5060408301518482036040860152611a7582826119f9565b91505060608301518482036060860152611a8f82826119f9565b91505060808301518482036080860152611aa982826119f9565b9150508091505092915050565b60006020820190508181036000830152611ad08184611a32565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611afd57611afc611ad8565b5b8235905067ffffffffffffffff811115611b1a57611b19611add565b5b602083019150836020820283011115611b3657611b35611ae2565b5b9250929050565b600080600060408486031215611b5657611b556116d1565b5b6000611b64868287016117b7565b935050602084013567ffffffffffffffff811115611b8557611b846116d6565b5b611b9186828701611ae7565b92509250509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611bda826119e8565b810181811067ffffffffffffffff82111715611bf957611bf8611ba2565b5b80604052505050565b6000611c0c6116c7565b9050611c188282611bd1565b919050565b600067ffffffffffffffff821115611c3857611c37611ba2565b5b611c41826119e8565b9050602081019050919050565b82818337600083830152505050565b6000611c70611c6b84611c1d565b611c02565b905082815260208101848484011115611c8c57611c8b611b9d565b5b611c97848285611c4e565b509392505050565b600082601f830112611cb457611cb3611ad8565b5b8135611cc4848260208601611c5d565b91505092915050565b60008060008060808587031215611ce757611ce66116d1565b5b6000611cf5878288016117b7565b945050602085013567ffffffffffffffff811115611d1657611d156116d6565b5b611d2287828801611c9f565b935050604085013567ffffffffffffffff811115611d4357611d426116d6565b5b611d4f87828801611c9f565b925050606085013567ffffffffffffffff811115611d7057611d6f6116d6565b5b611d7c87828801611c9f565b91505092959194509250565b60008060408385031215611d9f57611d9e6116d1565b5b6000611dad858286016118cf565b9250506020611dbe858286016117b7565b9150509250929050565b600080600060608486031215611de157611de06116d1565b5b600084013567ffffffffffffffff811115611dff57611dfe6116d6565b5b611e0b86828701611c9f565b935050602084013567ffffffffffffffff811115611e2c57611e2b6116d6565b5b611e3886828701611c9f565b925050604084013567ffffffffffffffff811115611e5957611e586116d6565b5b611e6586828701611c9f565b9150509250925092565b600082825260208201905092915050565b7f416c726561647920766572696669656400000000000000000000000000000000600082015250565b6000611eb6601083611e6f565b9150611ec182611e80565b602082019050919050565b60006020820190508181036000830152611ee581611ea9565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000611f48602f83611e6f565b9150611f5382611eec565b604082019050919050565b60006020820190508181036000830152611f7781611f3b565b9050919050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000611fb4601183611e6f565b9150611fbf82611f7e565b602082019050919050565b60006020820190508181036000830152611fe381611fa7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061203157607f821691505b6020821081141561204557612044611fea565b5b50919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006120a7602e83611e6f565b91506120b28261204b565b604082019050919050565b600060208201905081810360008301526120d68161209a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061214682611796565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156121795761217861210c565b5b600182019050919050565b61218d816118a6565b82525050565b600061219e82611999565b6121a88185611e6f565b93506121b88185602086016119b5565b6121c1816119e8565b840191505092915050565b600060a0820190506121e16000830188611951565b6121ee6020830187612184565b81810360408301526122008186612193565b905081810360608301526122148185612193565b905081810360808301526122288184612193565b90509695505050505050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b600061226a600983611e6f565b915061227582612234565b602082019050919050565b600060208201905081810360008301526122998161225d565b9050919050565b60008190508160005260206000209050919050565b600081546122c281612019565b6122cc8186611e6f565b945060018216600081146122e757600181146122f95761232c565b60ff198316865260208601935061232c565b612302856122a0565b60005b8381101561232457815481890152600182019150602081019050612305565b808801955050505b50505092915050565b600060a08201905061234a6000830188611951565b6123576020830187612184565b818103604083015261236981866122b5565b9050818103606083015261237d81856122b5565b9050818103608083015261239181846122b5565b90509695505050505050565b60006123a882611796565b91506123b383611796565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123e8576123e761210c565b5b828201905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006124346017836123f3565b915061243f826123fe565b601782019050919050565b600061245582611999565b61245f81856123f3565b935061246f8185602086016119b5565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006124b16011836123f3565b91506124bc8261247b565b601182019050919050565b60006124d282612427565b91506124de828561244a565b91506124e9826124a4565b91506124f5828461244a565b91508190509392505050565b6000602082019050818103600083015261251b8184612193565b905092915050565b600061252e82611796565b915061253983611796565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125725761257161210c565b5b828202905092915050565b600061258882611796565b9150600082141561259c5761259b61210c565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006125dd602083611e6f565b91506125e8826125a7565b602082019050919050565b6000602082019050818103600083015261260c816125d0565b905091905056fea2646970667358221220e8874472b99f795c264c612c2fbef6d21b929e133ecb516317dad7b009fe9b9a64736f6c63430008090033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x114 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BA13680 GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xAB444F28 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xAB444F28 EQ PUSH2 0x3AD JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x3D6 JUMPI DUP1 PUSH4 0xE58CDD90 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0xE73173A4 EQ PUSH2 0x428 JUMPI DUP1 PUSH4 0xF9A6CBAE EQ PUSH2 0x444 JUMPI PUSH2 0x114 JUMP JUMPDEST DUP1 PUSH4 0x7BA13680 EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x887E4B86 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x31C JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x359 JUMPI DUP1 PUSH4 0xA920B78C EQ PUSH2 0x384 JUMPI PUSH2 0x114 JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0xE7 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x1E5 JUMPI DUP1 PUSH4 0x5CADD4A9 EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x6DF693D3 EQ PUSH2 0x237 JUMPI DUP1 PUSH4 0x70480275 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x75B238FC EQ PUSH2 0x289 JUMPI PUSH2 0x114 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x1805D79F EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1BC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x125 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13B SWAP2 SWAP1 PUSH2 0x1733 JUMP JUMPDEST PUSH2 0x46F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14D SWAP2 SWAP1 PUSH2 0x177B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x17CC JUMP JUMPDEST PUSH2 0x4E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A1 SWAP2 SWAP1 PUSH2 0x182F JUMP JUMPDEST PUSH2 0x5E9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0x186B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0x18E4 JUMP JUMPDEST PUSH2 0x609 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x207 SWAP2 SWAP1 PUSH2 0x18E4 JUMP JUMPDEST PUSH2 0x632 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x235 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x230 SWAP2 SWAP1 PUSH2 0x17CC JUMP JUMPDEST PUSH2 0x6B5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x259 SWAP2 SWAP1 PUSH2 0x17CC JUMP JUMPDEST PUSH2 0x7D9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x287 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x1924 JUMP JUMPDEST PUSH2 0x813 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x295 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29E PUSH2 0x873 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x186B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH2 0x897 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x1960 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x306 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x301 SWAP2 SWAP1 PUSH2 0x17CC JUMP JUMPDEST PUSH2 0x89D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x1AB6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x343 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33E SWAP2 SWAP1 PUSH2 0x18E4 JUMP JUMPDEST PUSH2 0xAED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x350 SWAP2 SWAP1 PUSH2 0x177B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x365 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36E PUSH2 0xB58 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37B SWAP2 SWAP1 PUSH2 0x186B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x390 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A6 SWAP2 SWAP1 PUSH2 0x1B3D JUMP JUMPDEST PUSH2 0xB5F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CF SWAP2 SWAP1 PUSH2 0x1CCD JUMP JUMPDEST PUSH2 0xCBD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F8 SWAP2 SWAP1 PUSH2 0x18E4 JUMP JUMPDEST PUSH2 0xE1B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x426 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x421 SWAP2 SWAP1 PUSH2 0x1D88 JUMP JUMPDEST PUSH2 0xE44 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x442 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43D SWAP2 SWAP1 PUSH2 0x1DC8 JUMP JUMPDEST PUSH2 0xF3B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x450 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x459 PUSH2 0x10BE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x466 SWAP2 SWAP1 PUSH2 0x1960 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4E2 JUMPI POP PUSH2 0x4E1 DUP3 PUSH2 0x10C4 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 PUSH2 0x51B DUP2 PUSH2 0x516 PUSH2 0x112E JUMP JUMPDEST PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x582 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x579 SWAP1 PUSH2 0x1ECC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x19C567786DBC11AD5299760AD5F30BD149748AB79FAFC96892EC5C0B0B72B735 DUP3 PUSH1 0x40 MLOAD PUSH2 0x5DD SWAP2 SWAP1 PUSH2 0x1960 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x612 DUP3 PUSH2 0x5E9 JUMP JUMPDEST PUSH2 0x623 DUP2 PUSH2 0x61E PUSH2 0x112E JUMP JUMPDEST PUSH2 0x1136 JUMP JUMPDEST PUSH2 0x62D DUP4 DUP4 PUSH2 0x11D3 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x63A PUSH2 0x112E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x69E SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6B1 DUP3 DUP3 PUSH2 0x12B3 JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x756 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x74D SWAP1 PUSH2 0x1FCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x429E5A8F4E1289616A7CA758E14BD7070BBDB21D11F443824C6738D41B4432C2 DUP2 PUSH1 0x40 MLOAD PUSH2 0x785 SWAP2 SWAP1 PUSH2 0x1960 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x3 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x7D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x776EC9D2AD2A989538DB0C4F163462480D393F71E37A4FFD62689425EC14A08E DUP2 PUSH1 0x40 MLOAD PUSH2 0x808 SWAP2 SWAP1 PUSH2 0x1960 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 PUSH2 0x845 DUP2 PUSH2 0x840 PUSH2 0x112E JUMP JUMPDEST PUSH2 0x1136 JUMP JUMPDEST PUSH2 0x86F PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP4 PUSH2 0x609 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x8A5 PUSH2 0x15DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x923 SWAP1 PUSH2 0x2019 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x94F SWAP1 PUSH2 0x2019 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x99C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x971 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x99C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x97F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x9C4 SWAP1 PUSH2 0x2019 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9F0 SWAP1 PUSH2 0x2019 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA3D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA12 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA3D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA20 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0xA65 SWAP1 PUSH2 0x2019 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA91 SWAP1 PUSH2 0x2019 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xADE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAB3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xADE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xAC1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0xB85 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0xBC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBBB SWAP1 PUSH2 0x20BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0xC14 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST DUP4 PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xC8D JUMPI PUSH2 0xC7A PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xC60 JUMPI PUSH2 0xC5F PUSH2 0x20DD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xC75 SWAP2 SWAP1 PUSH2 0x1924 JUMP JUMPDEST PUSH2 0x1395 JUMP JUMPDEST DUP1 DUP1 PUSH2 0xC85 SWAP1 PUSH2 0x213B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xC1E JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x2 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0xCB7 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD5E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD55 SWAP1 PUSH2 0x1FCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xD85 SWAP3 SWAP2 SWAP1 PUSH2 0x1624 JUMP JUMPDEST POP DUP2 PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xDAD SWAP3 SWAP2 SWAP1 PUSH2 0x1624 JUMP JUMPDEST POP DUP1 PUSH1 0x7 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xDD5 SWAP3 SWAP2 SWAP1 PUSH2 0x1624 JUMP JUMPDEST POP PUSH32 0xFD025D83852F29D01B58FD4B19D8CFE0E12AF0EE9F31A7E273EA765CD4DD8620 DUP5 CALLER DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0xE0D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x21CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0xE24 DUP3 PUSH2 0x5E9 JUMP JUMPDEST PUSH2 0xE35 DUP2 PUSH2 0xE30 PUSH2 0x112E JUMP JUMPDEST PUSH2 0x1136 JUMP JUMPDEST PUSH2 0xE3F DUP4 DUP4 PUSH2 0x12B3 JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEE5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEDC SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST CALLER PUSH1 0x4 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x5 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xFB8 SWAP3 SWAP2 SWAP1 PUSH2 0x1624 JUMP JUMPDEST POP DUP2 PUSH1 0x6 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xFE2 SWAP3 SWAP2 SWAP1 PUSH2 0x1624 JUMP JUMPDEST POP DUP1 PUSH1 0x7 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x100C SWAP3 SWAP2 SWAP1 PUSH2 0x1624 JUMP JUMPDEST POP TIMESTAMP PUSH1 0x8 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x54362B36D34EFDDA9F90402E88C73FD5B6D780EA5A94052317E4664B31AACC38 PUSH1 0x2 SLOAD CALLER PUSH1 0x5 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x7 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x109C SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2335 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x2 SLOAD PUSH2 0x10B3 SWAP2 SWAP1 PUSH2 0x239D JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1140 DUP3 DUP3 PUSH2 0xAED JUMP JUMPDEST PUSH2 0x11CF JUMPI PUSH2 0x1165 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x14 PUSH2 0x13A3 JUMP JUMPDEST PUSH2 0x1173 DUP4 PUSH1 0x0 SHR PUSH1 0x20 PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1184 SWAP3 SWAP2 SWAP1 PUSH2 0x24C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11C6 SWAP2 SWAP1 PUSH2 0x2501 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x11DD DUP3 DUP3 PUSH2 0xAED JUMP JUMPDEST PUSH2 0x12AF JUMPI PUSH1 0x1 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1254 PUSH2 0x112E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x12BD DUP3 DUP3 PUSH2 0xAED JUMP JUMPDEST ISZERO PUSH2 0x1391 JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1336 PUSH2 0x112E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x139F DUP3 DUP3 PUSH2 0x11D3 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x2 DUP4 PUSH1 0x2 PUSH2 0x13B6 SWAP2 SWAP1 PUSH2 0x2523 JUMP JUMPDEST PUSH2 0x13C0 SWAP2 SWAP1 PUSH2 0x239D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13D9 JUMPI PUSH2 0x13D8 PUSH2 0x1BA2 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x140B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1443 JUMPI PUSH2 0x1442 PUSH2 0x20DD JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0x20DD JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH1 0x1 DUP5 PUSH1 0x2 PUSH2 0x14E7 SWAP2 SWAP1 PUSH2 0x2523 JUMP JUMPDEST PUSH2 0x14F1 SWAP2 SWAP1 PUSH2 0x239D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1591 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xF DUP7 AND PUSH1 0x10 DUP2 LT PUSH2 0x1533 JUMPI PUSH2 0x1532 PUSH2 0x20DD JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x154A JUMPI PUSH2 0x1549 PUSH2 0x20DD JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 DUP6 SWAP1 SHR SWAP5 POP DUP1 PUSH2 0x158A SWAP1 PUSH2 0x257D JUMP JUMPDEST SWAP1 POP PUSH2 0x14F4 JUMP JUMPDEST POP PUSH1 0x0 DUP5 EQ PUSH2 0x15D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15CC SWAP1 PUSH2 0x25F3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1630 SWAP1 PUSH2 0x2019 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1652 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1699 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x166B JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1699 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1699 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1698 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x167D JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x16A6 SWAP2 SWAP1 PUSH2 0x16AA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x16C3 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x16AB JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1710 DUP2 PUSH2 0x16DB JUMP JUMPDEST DUP2 EQ PUSH2 0x171B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x172D DUP2 PUSH2 0x1707 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1749 JUMPI PUSH2 0x1748 PUSH2 0x16D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1757 DUP5 DUP3 DUP6 ADD PUSH2 0x171E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1775 DUP2 PUSH2 0x1760 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1790 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x176C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17A9 DUP2 PUSH2 0x1796 JUMP JUMPDEST DUP2 EQ PUSH2 0x17B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x17C6 DUP2 PUSH2 0x17A0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17E2 JUMPI PUSH2 0x17E1 PUSH2 0x16D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17F0 DUP5 DUP3 DUP6 ADD PUSH2 0x17B7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x180C DUP2 PUSH2 0x17F9 JUMP JUMPDEST DUP2 EQ PUSH2 0x1817 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1829 DUP2 PUSH2 0x1803 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1845 JUMPI PUSH2 0x1844 PUSH2 0x16D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1853 DUP5 DUP3 DUP6 ADD PUSH2 0x181A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1865 DUP2 PUSH2 0x17F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1880 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x185C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18B1 DUP3 PUSH2 0x1886 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18C1 DUP2 PUSH2 0x18A6 JUMP JUMPDEST DUP2 EQ PUSH2 0x18CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x18DE DUP2 PUSH2 0x18B8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18FB JUMPI PUSH2 0x18FA PUSH2 0x16D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1909 DUP6 DUP3 DUP7 ADD PUSH2 0x181A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x191A DUP6 DUP3 DUP7 ADD PUSH2 0x18CF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x193A JUMPI PUSH2 0x1939 PUSH2 0x16D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1948 DUP5 DUP3 DUP6 ADD PUSH2 0x18CF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x195A DUP2 PUSH2 0x1796 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1975 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1951 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1984 DUP2 PUSH2 0x1796 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1993 DUP2 PUSH2 0x18A6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x19D3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x19B8 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x19E2 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A04 DUP3 PUSH2 0x1999 JUMP JUMPDEST PUSH2 0x1A0E DUP2 DUP6 PUSH2 0x19A4 JUMP JUMPDEST SWAP4 POP PUSH2 0x1A1E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x19B5 JUMP JUMPDEST PUSH2 0x1A27 DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x1A4A PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x197B JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1A5D PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x198A JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1A75 DUP3 DUP3 PUSH2 0x19F9 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1A8F DUP3 DUP3 PUSH2 0x19F9 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x1AA9 DUP3 DUP3 PUSH2 0x19F9 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1AD0 DUP2 DUP5 PUSH2 0x1A32 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1AFD JUMPI PUSH2 0x1AFC PUSH2 0x1AD8 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B1A JUMPI PUSH2 0x1B19 PUSH2 0x1ADD JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1B36 JUMPI PUSH2 0x1B35 PUSH2 0x1AE2 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B56 JUMPI PUSH2 0x1B55 PUSH2 0x16D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B64 DUP7 DUP3 DUP8 ADD PUSH2 0x17B7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B85 JUMPI PUSH2 0x1B84 PUSH2 0x16D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1B91 DUP7 DUP3 DUP8 ADD PUSH2 0x1AE7 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1BDA DUP3 PUSH2 0x19E8 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1BF9 JUMPI PUSH2 0x1BF8 PUSH2 0x1BA2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0C PUSH2 0x16C7 JUMP JUMPDEST SWAP1 POP PUSH2 0x1C18 DUP3 DUP3 PUSH2 0x1BD1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1C38 JUMPI PUSH2 0x1C37 PUSH2 0x1BA2 JUMP JUMPDEST JUMPDEST PUSH2 0x1C41 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C70 PUSH2 0x1C6B DUP5 PUSH2 0x1C1D JUMP JUMPDEST PUSH2 0x1C02 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1C8C JUMPI PUSH2 0x1C8B PUSH2 0x1B9D JUMP JUMPDEST JUMPDEST PUSH2 0x1C97 DUP5 DUP3 DUP6 PUSH2 0x1C4E JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1CB4 JUMPI PUSH2 0x1CB3 PUSH2 0x1AD8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1CC4 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1C5D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1CE7 JUMPI PUSH2 0x1CE6 PUSH2 0x16D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF5 DUP8 DUP3 DUP9 ADD PUSH2 0x17B7 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D16 JUMPI PUSH2 0x1D15 PUSH2 0x16D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1D22 DUP8 DUP3 DUP9 ADD PUSH2 0x1C9F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D43 JUMPI PUSH2 0x1D42 PUSH2 0x16D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1D4F DUP8 DUP3 DUP9 ADD PUSH2 0x1C9F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D70 JUMPI PUSH2 0x1D6F PUSH2 0x16D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1D7C DUP8 DUP3 DUP9 ADD PUSH2 0x1C9F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D9F JUMPI PUSH2 0x1D9E PUSH2 0x16D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DAD DUP6 DUP3 DUP7 ADD PUSH2 0x18CF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1DBE DUP6 DUP3 DUP7 ADD PUSH2 0x17B7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1DE1 JUMPI PUSH2 0x1DE0 PUSH2 0x16D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DFF JUMPI PUSH2 0x1DFE PUSH2 0x16D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1E0B DUP7 DUP3 DUP8 ADD PUSH2 0x1C9F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E2C JUMPI PUSH2 0x1E2B PUSH2 0x16D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1E38 DUP7 DUP3 DUP8 ADD PUSH2 0x1C9F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E59 JUMPI PUSH2 0x1E58 PUSH2 0x16D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1E65 DUP7 DUP3 DUP8 ADD PUSH2 0x1C9F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416C726561647920766572696669656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EB6 PUSH1 0x10 DUP4 PUSH2 0x1E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x1EC1 DUP3 PUSH2 0x1E80 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1EE5 DUP2 PUSH2 0x1EA9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F48 PUSH1 0x2F DUP4 PUSH2 0x1E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x1F53 DUP3 PUSH2 0x1EEC JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F77 DUP2 PUSH2 0x1F3B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F662064617070000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FB4 PUSH1 0x11 DUP4 PUSH2 0x1E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x1FBF DUP3 PUSH2 0x1F7E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1FE3 DUP2 PUSH2 0x1FA7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2031 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2045 JUMPI PUSH2 0x2044 PUSH2 0x1FEA JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20A7 PUSH1 0x2E DUP4 PUSH2 0x1E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x20B2 DUP3 PUSH2 0x204B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x20D6 DUP2 PUSH2 0x209A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2146 DUP3 PUSH2 0x1796 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x2179 JUMPI PUSH2 0x2178 PUSH2 0x210C JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x218D DUP2 PUSH2 0x18A6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x219E DUP3 PUSH2 0x1999 JUMP JUMPDEST PUSH2 0x21A8 DUP2 DUP6 PUSH2 0x1E6F JUMP JUMPDEST SWAP4 POP PUSH2 0x21B8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x19B5 JUMP JUMPDEST PUSH2 0x21C1 DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x21E1 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1951 JUMP JUMPDEST PUSH2 0x21EE PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2184 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x2200 DUP2 DUP7 PUSH2 0x2193 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2214 DUP2 DUP6 PUSH2 0x2193 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2228 DUP2 DUP5 PUSH2 0x2193 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x226A PUSH1 0x9 DUP4 PUSH2 0x1E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x2275 DUP3 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2299 DUP2 PUSH2 0x225D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x22C2 DUP2 PUSH2 0x2019 JUMP JUMPDEST PUSH2 0x22CC DUP2 DUP7 PUSH2 0x1E6F JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x22E7 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x22F9 JUMPI PUSH2 0x232C JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP PUSH2 0x232C JUMP JUMPDEST PUSH2 0x2302 DUP6 PUSH2 0x22A0 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2324 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2305 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x234A PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1951 JUMP JUMPDEST PUSH2 0x2357 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2184 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x2369 DUP2 DUP7 PUSH2 0x22B5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x237D DUP2 DUP6 PUSH2 0x22B5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2391 DUP2 DUP5 PUSH2 0x22B5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23A8 DUP3 PUSH2 0x1796 JUMP JUMPDEST SWAP2 POP PUSH2 0x23B3 DUP4 PUSH2 0x1796 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x23E8 JUMPI PUSH2 0x23E7 PUSH2 0x210C JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2434 PUSH1 0x17 DUP4 PUSH2 0x23F3 JUMP JUMPDEST SWAP2 POP PUSH2 0x243F DUP3 PUSH2 0x23FE JUMP JUMPDEST PUSH1 0x17 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2455 DUP3 PUSH2 0x1999 JUMP JUMPDEST PUSH2 0x245F DUP2 DUP6 PUSH2 0x23F3 JUMP JUMPDEST SWAP4 POP PUSH2 0x246F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x19B5 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24B1 PUSH1 0x11 DUP4 PUSH2 0x23F3 JUMP JUMPDEST SWAP2 POP PUSH2 0x24BC DUP3 PUSH2 0x247B JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24D2 DUP3 PUSH2 0x2427 JUMP JUMPDEST SWAP2 POP PUSH2 0x24DE DUP3 DUP6 PUSH2 0x244A JUMP JUMPDEST SWAP2 POP PUSH2 0x24E9 DUP3 PUSH2 0x24A4 JUMP JUMPDEST SWAP2 POP PUSH2 0x24F5 DUP3 DUP5 PUSH2 0x244A JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x251B DUP2 DUP5 PUSH2 0x2193 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x252E DUP3 PUSH2 0x1796 JUMP JUMPDEST SWAP2 POP PUSH2 0x2539 DUP4 PUSH2 0x1796 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2572 JUMPI PUSH2 0x2571 PUSH2 0x210C JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2588 DUP3 PUSH2 0x1796 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x259C JUMPI PUSH2 0x259B PUSH2 0x210C JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25DD PUSH1 0x20 DUP4 PUSH2 0x1E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x25E8 DUP3 PUSH2 0x25A7 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x260C DUP2 PUSH2 0x25D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE8 DUP8 DIFFICULTY PUSH19 0xB99F795C264C612C2FBEF6D21B929E133ECB51 PUSH4 0x17DAD7B0 MULMOD INVALID SWAP12 SWAP11 PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ", - "sourceMap": "198:3225:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2605:202:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2829:203:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3977:121:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4348:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5365:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2440:383:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3038:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3306:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;260:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;352:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2254:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2894:137:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2012:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;927:250:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1854:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4727:147:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3122:174:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1332:516;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;326:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2605:202:1;2690:4;2728:32;2713:47;;;:11;:47;;;;:87;;;;2764:36;2788:11;2764:23;:36::i;:::-;2713:87;2706:94;;2605:202;;;:::o;2829:203:7:-;297:23;2490:30:1;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;2931:5:7::1;2908:28;;:11;:19;2920:6;2908:19;;;;;;;;;;;;;;;;;;;;;:28;;;2900:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2989:4;2967:11;:19;2979:6;2967:19;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3008:17;3018:6;3008:17;;;;;;:::i;:::-;;;;;;;;2829:203:::0;;:::o;3977:121:1:-;4043:7;4069:6;:12;4076:4;4069:12;;;;;;;;;;;:22;;;4062:29;;3977:121;;;:::o;4348:145::-;4431:18;4444:4;4431:12;:18::i;:::-;2490:30;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;4461:25:::1;4472:4;4478:7;4461:10;:25::i;:::-;4348:145:::0;;;:::o;5365:214::-;5471:12;:10;:12::i;:::-;5460:23;;:7;:23;;;5452:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5546:26;5558:4;5564:7;5546:11;:26::i;:::-;5365:214;;:::o;2440:383:7:-;2520:10;2499:31;;:9;:17;2509:6;2499:17;;;;;;;;;;;;;;;;;;;;;:31;;;2491:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;2747:18;2758:6;2747:18;;;;;;:::i;:::-;;;;;;;;2783:10;2775:28;;:41;2804:11;;2775:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2440:383;:::o;3038:78::-;3092:17;3102:6;3092:17;;;;;;:::i;:::-;;;;;;;;3038:78;:::o;3306:114::-;297:23;2490:30:1;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;3381:32:7::1;297:23;3403:9;3381;:32::i;:::-;3306:114:::0;;:::o;260:60::-;297:23;260:60;:::o;352:23::-;;;;:::o;2254:180::-;2310:10;;:::i;:::-;2339:88;;;;;;;;2343:6;2339:88;;;;2351:9;:17;2361:6;2351:17;;;;;;;;;;;;;;;;;;;;;2339:88;;;;;;2370:7;:15;2378:6;2370:15;;;;;;;;;;;2339:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2387:11;:19;2399:6;2387:19;;;;;;;;;;;2339:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2408:10;:18;2419:6;2408:18;;;;;;;;;;;2339:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2332:95;;2254:180;;;:::o;2894:137:1:-;2972:4;2995:6;:12;3002:4;2995:12;;;;;;;;;;;:20;;:29;3016:7;2995:29;;;;;;;;;;;;;;;;;;;;;;;;;2988:36;;2894:137;;;;:::o;2012:49::-;2057:4;2012:49;;;:::o;927:250:7:-;2030:13:0;;;;;;;;;;;:30;;;;2048:12;;;;;;;;;;2047:13;2030:30;2022:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;2122:19;2145:13;;;;;;;;;;;2144:14;2122:36;;2172:14;2168:98;;;2218:4;2202:13;;:20;;;;;;;;;;;;;;;;;;2251:4;2236:12;;:19;;;;;;;;;;;;;;;;;;2168:98;1036:12:7::1;1022:11;:26;;;;1062:6;1058:94;1075:6;;:13;;1073:1;:15;1058:94;;;1108:33;297:23;1131:6;;1138:1;1131:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1108:10;:33::i;:::-;1089:3;;;;;:::i;:::-;;;;1058:94;;;;1169:1;1161:5;:9;;;;2292:14:0::0;2288:66;;;2338:5;2322:13;;:21;;;;;;;;;;;;;;;;;;2288:66;2012:348;927:250:7;;;:::o;1854:394::-;2010:10;1989:31;;:9;:17;1999:6;1989:17;;;;;;;;;;;;;;;;;;;;;:31;;;1981:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;2070:5;2052:7;:15;2060:6;2052:15;;;;;;;;;;;:23;;;;;;;;;;;;:::i;:::-;;2107:9;2085:11;:19;2097:6;2085:19;;;;;;;;;;;:31;;;;;;;;;;;;:::i;:::-;;2147:15;2126:10;:18;2137:6;2126:18;;;;;;;;;;;:36;;;;;;;;;;;;:::i;:::-;;2177:64;2187:6;2195:10;2207:5;2214:9;2225:15;2177:64;;;;;;;;;;:::i;:::-;;;;;;;;1854:394;;;;:::o;4727:147:1:-;4811:18;4824:4;4811:12;:18::i;:::-;2490:30;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;4841:26:::1;4853:4;4859:7;4841:11;:26::i;:::-;4727:147:::0;;;:::o;3122:174:7:-;3226:10;3205:31;;:9;:17;3215:6;3205:17;;;;;;;;;;;;;;;;;;;;;:31;;;3197:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;3280:9;3260;:17;3270:6;3260:17;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3122:174;;:::o;1332:516::-;1547:10;1528:9;:16;1538:5;;1528:16;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1584:5;1567:7;:14;1575:5;;1567:14;;;;;;;;;;;:22;;;;;;;;;;;;:::i;:::-;;1620:9;1599:11;:18;1611:5;;1599:18;;;;;;;;;;;:30;;;;;;;;;;;;:::i;:::-;;1659:15;1639:10;:17;1650:5;;1639:17;;;;;;;;;;;:35;;;;;;;;;;;;:::i;:::-;;1704:15;1684:10;:17;1695:5;;1684:17;;;;;;;;;;;:35;;;;1734:80;1741:5;;1748:10;1760:7;:14;1768:5;;1760:14;;;;;;;;;;;1776:11;:18;1788:5;;1776:18;;;;;;;;;;;1796:10;:17;1807:5;;1796:17;;;;;;;;;;;1734:80;;;;;;;;;;:::i;:::-;;;;;;;;1840:1;1832:5;;:9;;;;:::i;:::-;1824:5;:17;;;;1332:516;;;:::o;326:20::-;;;;:::o;829:155:5:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;640:96:3:-;693:7;719:10;712:17;;640:96;:::o;3312:484:1:-;3392:22;3400:4;3406:7;3392;:22::i;:::-;3387:403;;3575:41;3603:7;3575:41;;3613:2;3575:19;:41::i;:::-;3687:38;3715:4;3707:13;;3722:2;3687:19;:38::i;:::-;3482:265;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3430:349;;;;;;;;;;;:::i;:::-;;;;;;;;3387:403;3312:484;;:::o;6822:233::-;6905:22;6913:4;6919:7;6905;:22::i;:::-;6900:149;;6975:4;6943:6;:12;6950:4;6943:12;;;;;;;;;;;:20;;:29;6964:7;6943:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7025:12;:10;:12::i;:::-;6998:40;;7016:7;6998:40;;7010:4;6998:40;;;;;;;;;;6900:149;6822:233;;:::o;7180:234::-;7263:22;7271:4;7277:7;7263;:22::i;:::-;7259:149;;;7333:5;7301:6;:12;7308:4;7301:12;;;;;;;;;;;:20;;:29;7322:7;7301:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7384:12;:10;:12::i;:::-;7357:40;;7375:7;7357:40;;7369:4;7357:40;;;;;;;;;;7259:149;7180:234;;:::o;6218:110::-;6296:25;6307:4;6313:7;6296:10;:25::i;:::-;6218:110;;:::o;1588:441:4:-;1663:13;1688:19;1733:1;1724:6;1720:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1710:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:47;;1745:15;:6;1752:1;1745:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1770;:6;1777:1;1770:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1800:9;1825:1;1816:6;1812:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1800:26;;1795:132;1832:1;1828;:5;1795:132;;;1866:12;1887:3;1879:5;:11;1866:25;;;;;;;:::i;:::-;;;;;1854:6;1861:1;1854:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1915:1;1905:11;;;;;1835:3;;;;:::i;:::-;;;1795:132;;;;1953:1;1944:5;:10;1936:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2015:6;2001:21;;;1588:441;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:8:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:77::-;2246:7;2275:5;2264:16;;2209:77;;;:::o;2292:122::-;2365:24;2383:5;2365:24;:::i;:::-;2358:5;2355:35;2345:63;;2404:1;2401;2394:12;2345:63;2292:122;:::o;2420:139::-;2466:5;2504:6;2491:20;2482:29;;2520:33;2547:5;2520:33;:::i;:::-;2420:139;;;;:::o;2565:329::-;2624:6;2673:2;2661:9;2652:7;2648:23;2644:32;2641:119;;;2679:79;;:::i;:::-;2641:119;2799:1;2824:53;2869:7;2860:6;2849:9;2845:22;2824:53;:::i;:::-;2814:63;;2770:117;2565:329;;;;:::o;2900:118::-;2987:24;3005:5;2987:24;:::i;:::-;2982:3;2975:37;2900:118;;:::o;3024:222::-;3117:4;3155:2;3144:9;3140:18;3132:26;;3168:71;3236:1;3225:9;3221:17;3212:6;3168:71;:::i;:::-;3024:222;;;;:::o;3252:126::-;3289:7;3329:42;3322:5;3318:54;3307:65;;3252:126;;;:::o;3384:96::-;3421:7;3450:24;3468:5;3450:24;:::i;:::-;3439:35;;3384:96;;;:::o;3486:122::-;3559:24;3577:5;3559:24;:::i;:::-;3552:5;3549:35;3539:63;;3598:1;3595;3588:12;3539:63;3486:122;:::o;3614:139::-;3660:5;3698:6;3685:20;3676:29;;3714:33;3741:5;3714:33;:::i;:::-;3614:139;;;;:::o;3759:474::-;3827:6;3835;3884:2;3872:9;3863:7;3859:23;3855:32;3852:119;;;3890:79;;:::i;:::-;3852:119;4010:1;4035:53;4080:7;4071:6;4060:9;4056:22;4035:53;:::i;:::-;4025:63;;3981:117;4137:2;4163:53;4208:7;4199:6;4188:9;4184:22;4163:53;:::i;:::-;4153:63;;4108:118;3759:474;;;;;:::o;4239:329::-;4298:6;4347:2;4335:9;4326:7;4322:23;4318:32;4315:119;;;4353:79;;:::i;:::-;4315:119;4473:1;4498:53;4543:7;4534:6;4523:9;4519:22;4498:53;:::i;:::-;4488:63;;4444:117;4239:329;;;;:::o;4574:118::-;4661:24;4679:5;4661:24;:::i;:::-;4656:3;4649:37;4574:118;;:::o;4698:222::-;4791:4;4829:2;4818:9;4814:18;4806:26;;4842:71;4910:1;4899:9;4895:17;4886:6;4842:71;:::i;:::-;4698:222;;;;:::o;4926:108::-;5003:24;5021:5;5003:24;:::i;:::-;4998:3;4991:37;4926:108;;:::o;5040:::-;5117:24;5135:5;5117:24;:::i;:::-;5112:3;5105:37;5040:108;;:::o;5154:99::-;5206:6;5240:5;5234:12;5224:22;;5154:99;;;:::o;5259:159::-;5333:11;5367:6;5362:3;5355:19;5407:4;5402:3;5398:14;5383:29;;5259:159;;;;:::o;5424:307::-;5492:1;5502:113;5516:6;5513:1;5510:13;5502:113;;;5601:1;5596:3;5592:11;5586:18;5582:1;5577:3;5573:11;5566:39;5538:2;5535:1;5531:10;5526:15;;5502:113;;;5633:6;5630:1;5627:13;5624:101;;;5713:1;5704:6;5699:3;5695:16;5688:27;5624:101;5473:258;5424:307;;;:::o;5737:102::-;5778:6;5829:2;5825:7;5820:2;5813:5;5809:14;5805:28;5795:38;;5737:102;;;:::o;5845:344::-;5923:3;5951:39;5984:5;5951:39;:::i;:::-;6006:61;6060:6;6055:3;6006:61;:::i;:::-;5999:68;;6076:52;6121:6;6116:3;6109:4;6102:5;6098:16;6076:52;:::i;:::-;6153:29;6175:6;6153:29;:::i;:::-;6148:3;6144:39;6137:46;;5927:262;5845:344;;;;:::o;6247:1281::-;6356:3;6392:4;6387:3;6383:14;6480:4;6473:5;6469:16;6463:23;6499:63;6556:4;6551:3;6547:14;6533:12;6499:63;:::i;:::-;6407:165;6658:4;6651:5;6647:16;6641:23;6677:63;6734:4;6729:3;6725:14;6711:12;6677:63;:::i;:::-;6582:168;6835:4;6828:5;6824:16;6818:23;6888:3;6882:4;6878:14;6871:4;6866:3;6862:14;6855:38;6914:73;6982:4;6968:12;6914:73;:::i;:::-;6906:81;;6760:238;7087:4;7080:5;7076:16;7070:23;7140:3;7134:4;7130:14;7123:4;7118:3;7114:14;7107:38;7166:73;7234:4;7220:12;7166:73;:::i;:::-;7158:81;;7008:242;7338:4;7331:5;7327:16;7321:23;7391:3;7385:4;7381:14;7374:4;7369:3;7365:14;7358:38;7417:73;7485:4;7471:12;7417:73;:::i;:::-;7409:81;;7260:241;7518:4;7511:11;;6361:1167;6247:1281;;;;:::o;7534:353::-;7667:4;7705:2;7694:9;7690:18;7682:26;;7754:9;7748:4;7744:20;7740:1;7729:9;7725:17;7718:47;7782:98;7875:4;7866:6;7782:98;:::i;:::-;7774:106;;7534:353;;;;:::o;7893:117::-;8002:1;7999;7992:12;8016:117;8125:1;8122;8115:12;8139:117;8248:1;8245;8238:12;8279:568;8352:8;8362:6;8412:3;8405:4;8397:6;8393:17;8389:27;8379:122;;8420:79;;:::i;:::-;8379:122;8533:6;8520:20;8510:30;;8563:18;8555:6;8552:30;8549:117;;;8585:79;;:::i;:::-;8549:117;8699:4;8691:6;8687:17;8675:29;;8753:3;8745:4;8737:6;8733:17;8723:8;8719:32;8716:41;8713:128;;;8760:79;;:::i;:::-;8713:128;8279:568;;;;;:::o;8853:704::-;8948:6;8956;8964;9013:2;9001:9;8992:7;8988:23;8984:32;8981:119;;;9019:79;;:::i;:::-;8981:119;9139:1;9164:53;9209:7;9200:6;9189:9;9185:22;9164:53;:::i;:::-;9154:63;;9110:117;9294:2;9283:9;9279:18;9266:32;9325:18;9317:6;9314:30;9311:117;;;9347:79;;:::i;:::-;9311:117;9460:80;9532:7;9523:6;9512:9;9508:22;9460:80;:::i;:::-;9442:98;;;;9237:313;8853:704;;;;;:::o;9563:117::-;9672:1;9669;9662:12;9686:180;9734:77;9731:1;9724:88;9831:4;9828:1;9821:15;9855:4;9852:1;9845:15;9872:281;9955:27;9977:4;9955:27;:::i;:::-;9947:6;9943:40;10085:6;10073:10;10070:22;10049:18;10037:10;10034:34;10031:62;10028:88;;;10096:18;;:::i;:::-;10028:88;10136:10;10132:2;10125:22;9915:238;9872:281;;:::o;10159:129::-;10193:6;10220:20;;:::i;:::-;10210:30;;10249:33;10277:4;10269:6;10249:33;:::i;:::-;10159:129;;;:::o;10294:308::-;10356:4;10446:18;10438:6;10435:30;10432:56;;;10468:18;;:::i;:::-;10432:56;10506:29;10528:6;10506:29;:::i;:::-;10498:37;;10590:4;10584;10580:15;10572:23;;10294:308;;;:::o;10608:154::-;10692:6;10687:3;10682;10669:30;10754:1;10745:6;10740:3;10736:16;10729:27;10608:154;;;:::o;10768:412::-;10846:5;10871:66;10887:49;10929:6;10887:49;:::i;:::-;10871:66;:::i;:::-;10862:75;;10960:6;10953:5;10946:21;10998:4;10991:5;10987:16;11036:3;11027:6;11022:3;11018:16;11015:25;11012:112;;;11043:79;;:::i;:::-;11012:112;11133:41;11167:6;11162:3;11157;11133:41;:::i;:::-;10852:328;10768:412;;;;;:::o;11200:340::-;11256:5;11305:3;11298:4;11290:6;11286:17;11282:27;11272:122;;11313:79;;:::i;:::-;11272:122;11430:6;11417:20;11455:79;11530:3;11522:6;11515:4;11507:6;11503:17;11455:79;:::i;:::-;11446:88;;11262:278;11200:340;;;;:::o;11546:1305::-;11662:6;11670;11678;11686;11735:3;11723:9;11714:7;11710:23;11706:33;11703:120;;;11742:79;;:::i;:::-;11703:120;11862:1;11887:53;11932:7;11923:6;11912:9;11908:22;11887:53;:::i;:::-;11877:63;;11833:117;12017:2;12006:9;12002:18;11989:32;12048:18;12040:6;12037:30;12034:117;;;12070:79;;:::i;:::-;12034:117;12175:63;12230:7;12221:6;12210:9;12206:22;12175:63;:::i;:::-;12165:73;;11960:288;12315:2;12304:9;12300:18;12287:32;12346:18;12338:6;12335:30;12332:117;;;12368:79;;:::i;:::-;12332:117;12473:63;12528:7;12519:6;12508:9;12504:22;12473:63;:::i;:::-;12463:73;;12258:288;12613:2;12602:9;12598:18;12585:32;12644:18;12636:6;12633:30;12630:117;;;12666:79;;:::i;:::-;12630:117;12771:63;12826:7;12817:6;12806:9;12802:22;12771:63;:::i;:::-;12761:73;;12556:288;11546:1305;;;;;;;:::o;12857:474::-;12925:6;12933;12982:2;12970:9;12961:7;12957:23;12953:32;12950:119;;;12988:79;;:::i;:::-;12950:119;13108:1;13133:53;13178:7;13169:6;13158:9;13154:22;13133:53;:::i;:::-;13123:63;;13079:117;13235:2;13261:53;13306:7;13297:6;13286:9;13282:22;13261:53;:::i;:::-;13251:63;;13206:118;12857:474;;;;;:::o;13337:1159::-;13444:6;13452;13460;13509:2;13497:9;13488:7;13484:23;13480:32;13477:119;;;13515:79;;:::i;:::-;13477:119;13663:1;13652:9;13648:17;13635:31;13693:18;13685:6;13682:30;13679:117;;;13715:79;;:::i;:::-;13679:117;13820:63;13875:7;13866:6;13855:9;13851:22;13820:63;:::i;:::-;13810:73;;13606:287;13960:2;13949:9;13945:18;13932:32;13991:18;13983:6;13980:30;13977:117;;;14013:79;;:::i;:::-;13977:117;14118:63;14173:7;14164:6;14153:9;14149:22;14118:63;:::i;:::-;14108:73;;13903:288;14258:2;14247:9;14243:18;14230:32;14289:18;14281:6;14278:30;14275:117;;;14311:79;;:::i;:::-;14275:117;14416:63;14471:7;14462:6;14451:9;14447:22;14416:63;:::i;:::-;14406:73;;14201:288;13337:1159;;;;;:::o;14502:169::-;14586:11;14620:6;14615:3;14608:19;14660:4;14655:3;14651:14;14636:29;;14502:169;;;;:::o;14677:166::-;14817:18;14813:1;14805:6;14801:14;14794:42;14677:166;:::o;14849:366::-;14991:3;15012:67;15076:2;15071:3;15012:67;:::i;:::-;15005:74;;15088:93;15177:3;15088:93;:::i;:::-;15206:2;15201:3;15197:12;15190:19;;14849:366;;;:::o;15221:419::-;15387:4;15425:2;15414:9;15410:18;15402:26;;15474:9;15468:4;15464:20;15460:1;15449:9;15445:17;15438:47;15502:131;15628:4;15502:131;:::i;:::-;15494:139;;15221:419;;;:::o;15646:234::-;15786:34;15782:1;15774:6;15770:14;15763:58;15855:17;15850:2;15842:6;15838:15;15831:42;15646:234;:::o;15886:366::-;16028:3;16049:67;16113:2;16108:3;16049:67;:::i;:::-;16042:74;;16125:93;16214:3;16125:93;:::i;:::-;16243:2;16238:3;16234:12;16227:19;;15886:366;;;:::o;16258:419::-;16424:4;16462:2;16451:9;16447:18;16439:26;;16511:9;16505:4;16501:20;16497:1;16486:9;16482:17;16475:47;16539:131;16665:4;16539:131;:::i;:::-;16531:139;;16258:419;;;:::o;16683:167::-;16823:19;16819:1;16811:6;16807:14;16800:43;16683:167;:::o;16856:366::-;16998:3;17019:67;17083:2;17078:3;17019:67;:::i;:::-;17012:74;;17095:93;17184:3;17095:93;:::i;:::-;17213:2;17208:3;17204:12;17197:19;;16856:366;;;:::o;17228:419::-;17394:4;17432:2;17421:9;17417:18;17409:26;;17481:9;17475:4;17471:20;17467:1;17456:9;17452:17;17445:47;17509:131;17635:4;17509:131;:::i;:::-;17501:139;;17228:419;;;:::o;17653:180::-;17701:77;17698:1;17691:88;17798:4;17795:1;17788:15;17822:4;17819:1;17812:15;17839:320;17883:6;17920:1;17914:4;17910:12;17900:22;;17967:1;17961:4;17957:12;17988:18;17978:81;;18044:4;18036:6;18032:17;18022:27;;17978:81;18106:2;18098:6;18095:14;18075:18;18072:38;18069:84;;;18125:18;;:::i;:::-;18069:84;17890:269;17839:320;;;:::o;18165:233::-;18305:34;18301:1;18293:6;18289:14;18282:58;18374:16;18369:2;18361:6;18357:15;18350:41;18165:233;:::o;18404:366::-;18546:3;18567:67;18631:2;18626:3;18567:67;:::i;:::-;18560:74;;18643:93;18732:3;18643:93;:::i;:::-;18761:2;18756:3;18752:12;18745:19;;18404:366;;;:::o;18776:419::-;18942:4;18980:2;18969:9;18965:18;18957:26;;19029:9;19023:4;19019:20;19015:1;19004:9;19000:17;18993:47;19057:131;19183:4;19057:131;:::i;:::-;19049:139;;18776:419;;;:::o;19201:180::-;19249:77;19246:1;19239:88;19346:4;19343:1;19336:15;19370:4;19367:1;19360:15;19387:180;19435:77;19432:1;19425:88;19532:4;19529:1;19522:15;19556:4;19553:1;19546:15;19573:233;19612:3;19635:24;19653:5;19635:24;:::i;:::-;19626:33;;19681:66;19674:5;19671:77;19668:103;;;19751:18;;:::i;:::-;19668:103;19798:1;19791:5;19787:13;19780:20;;19573:233;;;:::o;19812:118::-;19899:24;19917:5;19899:24;:::i;:::-;19894:3;19887:37;19812:118;;:::o;19936:364::-;20024:3;20052:39;20085:5;20052:39;:::i;:::-;20107:71;20171:6;20166:3;20107:71;:::i;:::-;20100:78;;20187:52;20232:6;20227:3;20220:4;20213:5;20209:16;20187:52;:::i;:::-;20264:29;20286:6;20264:29;:::i;:::-;20259:3;20255:39;20248:46;;20028:272;19936:364;;;;:::o;20306:937::-;20571:4;20609:3;20598:9;20594:19;20586:27;;20623:71;20691:1;20680:9;20676:17;20667:6;20623:71;:::i;:::-;20704:72;20772:2;20761:9;20757:18;20748:6;20704:72;:::i;:::-;20823:9;20817:4;20813:20;20808:2;20797:9;20793:18;20786:48;20851:78;20924:4;20915:6;20851:78;:::i;:::-;20843:86;;20976:9;20970:4;20966:20;20961:2;20950:9;20946:18;20939:48;21004:78;21077:4;21068:6;21004:78;:::i;:::-;20996:86;;21130:9;21124:4;21120:20;21114:3;21103:9;21099:19;21092:49;21158:78;21231:4;21222:6;21158:78;:::i;:::-;21150:86;;20306:937;;;;;;;;:::o;21249:159::-;21389:11;21385:1;21377:6;21373:14;21366:35;21249:159;:::o;21414:365::-;21556:3;21577:66;21641:1;21636:3;21577:66;:::i;:::-;21570:73;;21652:93;21741:3;21652:93;:::i;:::-;21770:2;21765:3;21761:12;21754:19;;21414:365;;;:::o;21785:419::-;21951:4;21989:2;21978:9;21974:18;21966:26;;22038:9;22032:4;22028:20;22024:1;22013:9;22009:17;22002:47;22066:131;22192:4;22066:131;:::i;:::-;22058:139;;21785:419;;;:::o;22210:141::-;22259:4;22282:3;22274:11;;22305:3;22302:1;22295:14;22339:4;22336:1;22326:18;22318:26;;22210:141;;;:::o;22381:802::-;22466:3;22503:5;22497:12;22532:36;22558:9;22532:36;:::i;:::-;22584:71;22648:6;22643:3;22584:71;:::i;:::-;22577:78;;22686:1;22675:9;22671:17;22702:1;22697:135;;;;22846:1;22841:336;;;;22664:513;;22697:135;22781:4;22777:9;22766;22762:25;22757:3;22750:38;22817:4;22812:3;22808:14;22801:21;;22697:135;;22841:336;22908:38;22940:5;22908:38;:::i;:::-;22968:1;22982:154;22996:6;22993:1;22990:13;22982:154;;;23070:7;23064:14;23060:1;23055:3;23051:11;23044:35;23120:1;23111:7;23107:15;23096:26;;23018:4;23015:1;23011:12;23006:17;;22982:154;;;23165:1;23160:3;23156:11;23149:18;;22848:329;;22664:513;;22470:713;;22381:802;;;;:::o;23189:919::-;23445:4;23483:3;23472:9;23468:19;23460:27;;23497:71;23565:1;23554:9;23550:17;23541:6;23497:71;:::i;:::-;23578:72;23646:2;23635:9;23631:18;23622:6;23578:72;:::i;:::-;23697:9;23691:4;23687:20;23682:2;23671:9;23667:18;23660:48;23725:75;23795:4;23786:6;23725:75;:::i;:::-;23717:83;;23847:9;23841:4;23837:20;23832:2;23821:9;23817:18;23810:48;23875:75;23945:4;23936:6;23875:75;:::i;:::-;23867:83;;23998:9;23992:4;23988:20;23982:3;23971:9;23967:19;23960:49;24026:75;24096:4;24087:6;24026:75;:::i;:::-;24018:83;;23189:919;;;;;;;;:::o;24114:305::-;24154:3;24173:20;24191:1;24173:20;:::i;:::-;24168:25;;24207:20;24225:1;24207:20;:::i;:::-;24202:25;;24361:1;24293:66;24289:74;24286:1;24283:81;24280:107;;;24367:18;;:::i;:::-;24280:107;24411:1;24408;24404:9;24397:16;;24114:305;;;;:::o;24425:148::-;24527:11;24564:3;24549:18;;24425:148;;;;:::o;24579:173::-;24719:25;24715:1;24707:6;24703:14;24696:49;24579:173;:::o;24758:402::-;24918:3;24939:85;25021:2;25016:3;24939:85;:::i;:::-;24932:92;;25033:93;25122:3;25033:93;:::i;:::-;25151:2;25146:3;25142:12;25135:19;;24758:402;;;:::o;25166:377::-;25272:3;25300:39;25333:5;25300:39;:::i;:::-;25355:89;25437:6;25432:3;25355:89;:::i;:::-;25348:96;;25453:52;25498:6;25493:3;25486:4;25479:5;25475:16;25453:52;:::i;:::-;25530:6;25525:3;25521:16;25514:23;;25276:267;25166:377;;;;:::o;25549:167::-;25689:19;25685:1;25677:6;25673:14;25666:43;25549:167;:::o;25722:402::-;25882:3;25903:85;25985:2;25980:3;25903:85;:::i;:::-;25896:92;;25997:93;26086:3;25997:93;:::i;:::-;26115:2;26110:3;26106:12;26099:19;;25722:402;;;:::o;26130:967::-;26512:3;26534:148;26678:3;26534:148;:::i;:::-;26527:155;;26699:95;26790:3;26781:6;26699:95;:::i;:::-;26692:102;;26811:148;26955:3;26811:148;:::i;:::-;26804:155;;26976:95;27067:3;27058:6;26976:95;:::i;:::-;26969:102;;27088:3;27081:10;;26130:967;;;;;:::o;27103:313::-;27216:4;27254:2;27243:9;27239:18;27231:26;;27303:9;27297:4;27293:20;27289:1;27278:9;27274:17;27267:47;27331:78;27404:4;27395:6;27331:78;:::i;:::-;27323:86;;27103:313;;;;:::o;27422:348::-;27462:7;27485:20;27503:1;27485:20;:::i;:::-;27480:25;;27519:20;27537:1;27519:20;:::i;:::-;27514:25;;27707:1;27639:66;27635:74;27632:1;27629:81;27624:1;27617:9;27610:17;27606:105;27603:131;;;27714:18;;:::i;:::-;27603:131;27762:1;27759;27755:9;27744:20;;27422:348;;;;:::o;27776:171::-;27815:3;27838:24;27856:5;27838:24;:::i;:::-;27829:33;;27884:4;27877:5;27874:15;27871:41;;;27892:18;;:::i;:::-;27871:41;27939:1;27932:5;27928:13;27921:20;;27776:171;;;:::o;27953:182::-;28093:34;28089:1;28081:6;28077:14;28070:58;27953:182;:::o;28141:366::-;28283:3;28304:67;28368:2;28363:3;28304:67;:::i;:::-;28297:74;;28380:93;28469:3;28380:93;:::i;:::-;28498:2;28493:3;28489:12;28482:19;;28141:366;;;:::o;28513:419::-;28679:4;28717:2;28706:9;28702:18;28694:26;;28766:9;28760:4;28756:20;28752:1;28741:9;28737:17;28730:47;28794:131;28920:4;28794:131;:::i;:::-;28786:139;;28513:419;;;:::o" + "object": "60806040526004361061012a5760003560e01c80637ba13680116100ab578063a920b78c1161006f578063a920b78c146103ee578063ab444f2814610417578063d547741f14610440578063e58cdd9014610469578063e73173a414610492578063f9a6cbae146104ae5761012a565b80637ba13680146102f3578063887e4b861461031e57806391d148541461035b57806393946a8214610398578063a217fddf146103c35761012a565b806336568abe116100f257806336568abe146102245780635cadd4a91461024d5780636df693d314610276578063704802751461029f57806375b238fc146102c85761012a565b806301ffc9a71461012f5780631805d79f1461016c5780631c7828bb14610195578063248a9ca3146101be5780632f2ff15d146101fb575b600080fd5b34801561013b57600080fd5b5061015660048036038101906101519190611955565b6104d9565b604051610163919061199d565b60405180910390f35b34801561017857600080fd5b50610193600480360381019061018e91906119ee565b610553565b005b3480156101a157600080fd5b506101bc60048036038101906101b79190611a80565b610653565b005b3480156101ca57600080fd5b506101e560048036038101906101e09190611b16565b6106ef565b6040516101f29190611b52565b60405180910390f35b34801561020757600080fd5b50610222600480360381019061021d9190611bcb565b61070f565b005b34801561023057600080fd5b5061024b60048036038101906102469190611bcb565b610738565b005b34801561025957600080fd5b50610274600480360381019061026f91906119ee565b6107bb565b005b34801561028257600080fd5b5061029d600480360381019061029891906119ee565b6108df565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190611c0b565b610919565b005b3480156102d457600080fd5b506102dd610979565b6040516102ea9190611b52565b60405180910390f35b3480156102ff57600080fd5b5061030861099d565b6040516103159190611c47565b60405180910390f35b34801561032a57600080fd5b50610345600480360381019061034091906119ee565b6109a3565b6040516103529190611d9d565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190611bcb565b610bf3565b60405161038f919061199d565b60405180910390f35b3480156103a457600080fd5b506103ad610c5e565b6040516103ba9190611e09565b60405180910390f35b3480156103cf57600080fd5b506103d8610cec565b6040516103e59190611b52565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190611e81565b610cf3565b005b34801561042357600080fd5b5061043e60048036038101906104399190612011565b610e59565b005b34801561044c57600080fd5b5061046760048036038101906104629190611bcb565b610fb7565b005b34801561047557600080fd5b50610490600480360381019061048b91906120cc565b610fe0565b005b6104ac60048036038101906104a7919061210c565b6110d7565b005b3480156104ba57600080fd5b506104c361125a565b6040516104d09190611c47565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061054c575061054b82611260565b5b9050919050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610585816105806112ca565b6112d2565b60001515600b600084815260200190815260200160002060009054906101000a900460ff161515146105ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e3906121ff565b60405180910390fd5b6001600b600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f19c567786dbc11ad5299760ad5f30bd149748ab79fafc96892ec5c0b0b72b735826040516106479190611c47565b60405180910390a15050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610685816106806112ca565b6112d2565b600454841161069357600080fd5b836004819055508282600591906106ab92919061177b565b507fac6f529748dff7dcfce830264026aae25c056feca522504efe68bbd393b95e0160045484846040516106e19392919061224c565b60405180910390a150505050565b600060016000838152602001908152602001600020600101549050919050565b610718826106ef565b610729816107246112ca565b6112d2565b610733838361136f565b505050565b6107406112ca565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a4906122f0565b60405180910390fd5b6107b7828261144f565b5050565b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108539061235c565b60405180910390fd5b7f429e5a8f4e1289616a7ca758e14bd7070bbdb21d11f443824c6738d41b4432c28160405161088b9190611c47565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6003549081150290604051600060405180830381858888f193505050501580156108db573d6000803e3d6000fd5b5050565b7f776ec9d2ad2a989538db0c4f163462480d393f71e37a4ffd62689425ec14a08e8160405161090e9190611c47565b60405180910390a150565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561094b816109466112ca565b6112d2565b6109757fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758361070f565b5050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60035481565b6109ab611801565b6040518060a001604052808381526020016006600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600760008581526020019081526020016000208054610a29906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610a55906123ab565b8015610aa25780601f10610a7757610100808354040283529160200191610aa2565b820191906000526020600020905b815481529060010190602001808311610a8557829003601f168201915b50505050508152602001600860008581526020019081526020016000208054610aca906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610af6906123ab565b8015610b435780601f10610b1857610100808354040283529160200191610b43565b820191906000526020600020905b815481529060010190602001808311610b2657829003601f168201915b50505050508152602001600960008581526020019081526020016000208054610b6b906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610b97906123ab565b8015610be45780601f10610bb957610100808354040283529160200191610be4565b820191906000526020600020905b815481529060010190602001808311610bc757829003601f168201915b50505050508152509050919050565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60058054610c6b906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610c97906123ab565b8015610ce45780601f10610cb957610100808354040283529160200191610ce4565b820191906000526020600020905b815481529060010190602001808311610cc757829003601f168201915b505050505081565b6000801b81565b600060019054906101000a900460ff1680610d19575060008054906101000a900460ff16155b610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f9061244f565b60405180910390fd5b60008060019054906101000a900460ff161590508015610da8576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8360038190555060005b83839050811015610e2157610e0e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775858584818110610df457610df361246f565b5b9050602002016020810190610e099190611c0b565b611531565b8080610e19906124cd565b915050610db2565b50600060028190555060006004819055508015610e535760008060016101000a81548160ff0219169083151502179055505b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166006600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef19061235c565b60405180910390fd5b82600760008681526020019081526020016000209080519060200190610f21929190611846565b5081600860008681526020019081526020016000209080519060200190610f49929190611846565b5080600960008681526020019081526020016000209080519060200190610f71929190611846565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd86208433858585604051610fa9959493929190612525565b60405180910390a150505050565b610fc0826106ef565b610fd181610fcc6112ca565b6112d2565b610fdb838361144f565b505050565b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611081576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611078906125d9565b60405180910390fd5b816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3360066000600254815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826007600060025481526020019081526020016000209080519060200190611154929190611846565b5081600860006002548152602001908152602001600020908051906020019061117e929190611846565b508060096000600254815260200190815260200160002090805190602001906111a8929190611846565b5042600a60006002548152602001908152602001600020819055507f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc386002543360076000600254815260200190815260200160002060086000600254815260200190815260200160002060096000600254815260200190815260200160002060405161123895949392919061268e565b60405180910390a1600160025461124f91906126f6565b600281905550505050565b60025481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6112dc8282610bf3565b61136b576113018173ffffffffffffffffffffffffffffffffffffffff16601461153f565b61130f8360001c602061153f565b604051602001611320929190612820565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113629190611e09565b60405180910390fd5b5050565b6113798282610bf3565b61144b57600180600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113f06112ca565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6114598282610bf3565b1561152d5760006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114d26112ca565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61153b828261136f565b5050565b606060006002836002611552919061285a565b61155c91906126f6565b67ffffffffffffffff81111561157557611574611ee6565b5b6040519080825280601f01601f1916602001820160405280156115a75781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106115df576115de61246f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106116435761164261246f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611683919061285a565b61168d91906126f6565b90505b600181111561172d577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106116cf576116ce61246f565b5b1a60f81b8282815181106116e6576116e561246f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611726906128b4565b9050611690565b5060008414611771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117689061292a565b60405180910390fd5b8091505092915050565b828054611787906123ab565b90600052602060002090601f0160209004810192826117a957600085556117f0565b82601f106117c257803560ff19168380011785556117f0565b828001600101855582156117f0579182015b828111156117ef5782358255916020019190600101906117d4565b5b5090506117fd91906118cc565b5090565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b828054611852906123ab565b90600052602060002090601f01602090048101928261187457600085556118bb565b82601f1061188d57805160ff19168380011785556118bb565b828001600101855582156118bb579182015b828111156118ba57825182559160200191906001019061189f565b5b5090506118c891906118cc565b5090565b5b808211156118e55760008160009055506001016118cd565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611932816118fd565b811461193d57600080fd5b50565b60008135905061194f81611929565b92915050565b60006020828403121561196b5761196a6118f3565b5b600061197984828501611940565b91505092915050565b60008115159050919050565b61199781611982565b82525050565b60006020820190506119b2600083018461198e565b92915050565b6000819050919050565b6119cb816119b8565b81146119d657600080fd5b50565b6000813590506119e8816119c2565b92915050565b600060208284031215611a0457611a036118f3565b5b6000611a12848285016119d9565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611a4057611a3f611a1b565b5b8235905067ffffffffffffffff811115611a5d57611a5c611a20565b5b602083019150836001820283011115611a7957611a78611a25565b5b9250929050565b600080600060408486031215611a9957611a986118f3565b5b6000611aa7868287016119d9565b935050602084013567ffffffffffffffff811115611ac857611ac76118f8565b5b611ad486828701611a2a565b92509250509250925092565b6000819050919050565b611af381611ae0565b8114611afe57600080fd5b50565b600081359050611b1081611aea565b92915050565b600060208284031215611b2c57611b2b6118f3565b5b6000611b3a84828501611b01565b91505092915050565b611b4c81611ae0565b82525050565b6000602082019050611b676000830184611b43565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b9882611b6d565b9050919050565b611ba881611b8d565b8114611bb357600080fd5b50565b600081359050611bc581611b9f565b92915050565b60008060408385031215611be257611be16118f3565b5b6000611bf085828601611b01565b9250506020611c0185828601611bb6565b9150509250929050565b600060208284031215611c2157611c206118f3565b5b6000611c2f84828501611bb6565b91505092915050565b611c41816119b8565b82525050565b6000602082019050611c5c6000830184611c38565b92915050565b611c6b816119b8565b82525050565b611c7a81611b8d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cba578082015181840152602081019050611c9f565b83811115611cc9576000848401525b50505050565b6000601f19601f8301169050919050565b6000611ceb82611c80565b611cf58185611c8b565b9350611d05818560208601611c9c565b611d0e81611ccf565b840191505092915050565b600060a083016000830151611d316000860182611c62565b506020830151611d446020860182611c71565b5060408301518482036040860152611d5c8282611ce0565b91505060608301518482036060860152611d768282611ce0565b91505060808301518482036080860152611d908282611ce0565b9150508091505092915050565b60006020820190508181036000830152611db78184611d19565b905092915050565b600082825260208201905092915050565b6000611ddb82611c80565b611de58185611dbf565b9350611df5818560208601611c9c565b611dfe81611ccf565b840191505092915050565b60006020820190508181036000830152611e238184611dd0565b905092915050565b60008083601f840112611e4157611e40611a1b565b5b8235905067ffffffffffffffff811115611e5e57611e5d611a20565b5b602083019150836020820283011115611e7a57611e79611a25565b5b9250929050565b600080600060408486031215611e9a57611e996118f3565b5b6000611ea8868287016119d9565b935050602084013567ffffffffffffffff811115611ec957611ec86118f8565b5b611ed586828701611e2b565b92509250509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f1e82611ccf565b810181811067ffffffffffffffff82111715611f3d57611f3c611ee6565b5b80604052505050565b6000611f506118e9565b9050611f5c8282611f15565b919050565b600067ffffffffffffffff821115611f7c57611f7b611ee6565b5b611f8582611ccf565b9050602081019050919050565b82818337600083830152505050565b6000611fb4611faf84611f61565b611f46565b905082815260208101848484011115611fd057611fcf611ee1565b5b611fdb848285611f92565b509392505050565b600082601f830112611ff857611ff7611a1b565b5b8135612008848260208601611fa1565b91505092915050565b6000806000806080858703121561202b5761202a6118f3565b5b6000612039878288016119d9565b945050602085013567ffffffffffffffff81111561205a576120596118f8565b5b61206687828801611fe3565b935050604085013567ffffffffffffffff811115612087576120866118f8565b5b61209387828801611fe3565b925050606085013567ffffffffffffffff8111156120b4576120b36118f8565b5b6120c087828801611fe3565b91505092959194509250565b600080604083850312156120e3576120e26118f3565b5b60006120f185828601611bb6565b9250506020612102858286016119d9565b9150509250929050565b600080600060608486031215612125576121246118f3565b5b600084013567ffffffffffffffff811115612143576121426118f8565b5b61214f86828701611fe3565b935050602084013567ffffffffffffffff8111156121705761216f6118f8565b5b61217c86828701611fe3565b925050604084013567ffffffffffffffff81111561219d5761219c6118f8565b5b6121a986828701611fe3565b9150509250925092565b7f416c726561647920766572696669656400000000000000000000000000000000600082015250565b60006121e9601083611dbf565b91506121f4826121b3565b602082019050919050565b60006020820190508181036000830152612218816121dc565b9050919050565b600061222b8385611dbf565b9350612238838584611f92565b61224183611ccf565b840190509392505050565b60006040820190506122616000830186611c38565b818103602083015261227481848661221f565b9050949350505050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006122da602f83611dbf565b91506122e58261227e565b604082019050919050565b60006020820190508181036000830152612309816122cd565b9050919050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000612346601183611dbf565b915061235182612310565b602082019050919050565b6000602082019050818103600083015261237581612339565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123c357607f821691505b602082108114156123d7576123d661237c565b5b50919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000612439602e83611dbf565b9150612444826123dd565b604082019050919050565b600060208201905081810360008301526124688161242c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124d8826119b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561250b5761250a61249e565b5b600182019050919050565b61251f81611b8d565b82525050565b600060a08201905061253a6000830188611c38565b6125476020830187612516565b81810360408301526125598186611dd0565b9050818103606083015261256d8185611dd0565b905081810360808301526125818184611dd0565b90509695505050505050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006125c3600983611dbf565b91506125ce8261258d565b602082019050919050565b600060208201905081810360008301526125f2816125b6565b9050919050565b60008190508160005260206000209050919050565b6000815461261b816123ab565b6126258186611dbf565b94506001821660008114612640576001811461265257612685565b60ff1983168652602086019350612685565b61265b856125f9565b60005b8381101561267d5781548189015260018201915060208101905061265e565b808801955050505b50505092915050565b600060a0820190506126a36000830188611c38565b6126b06020830187612516565b81810360408301526126c2818661260e565b905081810360608301526126d6818561260e565b905081810360808301526126ea818461260e565b90509695505050505050565b6000612701826119b8565b915061270c836119b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127415761274061249e565b5b828201905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061278d60178361274c565b915061279882612757565b601782019050919050565b60006127ae82611c80565b6127b8818561274c565b93506127c8818560208601611c9c565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061280a60118361274c565b9150612815826127d4565b601182019050919050565b600061282b82612780565b915061283782856127a3565b9150612842826127fd565b915061284e82846127a3565b91508190509392505050565b6000612865826119b8565b9150612870836119b8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128a9576128a861249e565b5b828202905092915050565b60006128bf826119b8565b915060008214156128d3576128d261249e565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000612914602083611dbf565b915061291f826128de565b602082019050919050565b6000602082019050818103600083015261294381612907565b905091905056fea26469706673582212208f0ee76cef5f412b12aabf5d0eee3507e96a3d036a8af51c0cae456831f3518c64736f6c63430008090033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BA13680 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xA920B78C GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xA920B78C EQ PUSH2 0x3EE JUMPI DUP1 PUSH4 0xAB444F28 EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x440 JUMPI DUP1 PUSH4 0xE58CDD90 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0xE73173A4 EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0xF9A6CBAE EQ PUSH2 0x4AE JUMPI PUSH2 0x12A JUMP JUMPDEST DUP1 PUSH4 0x7BA13680 EQ PUSH2 0x2F3 JUMPI DUP1 PUSH4 0x887E4B86 EQ PUSH2 0x31E JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0x93946A82 EQ PUSH2 0x398 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x3C3 JUMPI PUSH2 0x12A JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0x5CADD4A9 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x6DF693D3 EQ PUSH2 0x276 JUMPI DUP1 PUSH4 0x70480275 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0x75B238FC EQ PUSH2 0x2C8 JUMPI PUSH2 0x12A JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x1805D79F EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x1C7828BB EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1FB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x156 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x151 SWAP2 SWAP1 PUSH2 0x1955 JUMP JUMPDEST PUSH2 0x4D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x199D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x19EE JUMP JUMPDEST PUSH2 0x553 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B7 SWAP2 SWAP1 PUSH2 0x1A80 JUMP JUMPDEST PUSH2 0x653 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x1B16 JUMP JUMPDEST PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0x1B52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x207 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x222 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21D SWAP2 SWAP1 PUSH2 0x1BCB JUMP JUMPDEST PUSH2 0x70F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x246 SWAP2 SWAP1 PUSH2 0x1BCB JUMP JUMPDEST PUSH2 0x738 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x274 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 PUSH2 0x19EE JUMP JUMPDEST PUSH2 0x7BB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x19EE JUMP JUMPDEST PUSH2 0x8DF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C1 SWAP2 SWAP1 PUSH2 0x1C0B JUMP JUMPDEST PUSH2 0x919 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DD PUSH2 0x979 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EA SWAP2 SWAP1 PUSH2 0x1B52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x308 PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x315 SWAP2 SWAP1 PUSH2 0x1C47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x345 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x340 SWAP2 SWAP1 PUSH2 0x19EE JUMP JUMPDEST PUSH2 0x9A3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x352 SWAP2 SWAP1 PUSH2 0x1D9D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x382 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37D SWAP2 SWAP1 PUSH2 0x1BCB JUMP JUMPDEST PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38F SWAP2 SWAP1 PUSH2 0x199D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AD PUSH2 0xC5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3BA SWAP2 SWAP1 PUSH2 0x1E09 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D8 PUSH2 0xCEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E5 SWAP2 SWAP1 PUSH2 0x1B52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x415 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x410 SWAP2 SWAP1 PUSH2 0x1E81 JUMP JUMPDEST PUSH2 0xCF3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x43E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x439 SWAP2 SWAP1 PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xE59 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x467 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x462 SWAP2 SWAP1 PUSH2 0x1BCB JUMP JUMPDEST PUSH2 0xFB7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x490 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x48B SWAP2 SWAP1 PUSH2 0x20CC JUMP JUMPDEST PUSH2 0xFE0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4A7 SWAP2 SWAP1 PUSH2 0x210C JUMP JUMPDEST PUSH2 0x10D7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C3 PUSH2 0x125A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4D0 SWAP2 SWAP1 PUSH2 0x1C47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x54C JUMPI POP PUSH2 0x54B DUP3 PUSH2 0x1260 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 PUSH2 0x585 DUP2 PUSH2 0x580 PUSH2 0x12CA JUMP JUMPDEST PUSH2 0x12D2 JUMP JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0xB PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x5EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E3 SWAP1 PUSH2 0x21FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xB PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x19C567786DBC11AD5299760AD5F30BD149748AB79FAFC96892EC5C0B0B72B735 DUP3 PUSH1 0x40 MLOAD PUSH2 0x647 SWAP2 SWAP1 PUSH2 0x1C47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 PUSH2 0x685 DUP2 PUSH2 0x680 PUSH2 0x12CA JUMP JUMPDEST PUSH2 0x12D2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP5 GT PUSH2 0x693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x4 DUP2 SWAP1 SSTORE POP DUP3 DUP3 PUSH1 0x5 SWAP2 SWAP1 PUSH2 0x6AB SWAP3 SWAP2 SWAP1 PUSH2 0x177B JUMP JUMPDEST POP PUSH32 0xAC6F529748DFF7DCFCE830264026AAE25C056FECA522504EFE68BBD393B95E01 PUSH1 0x4 SLOAD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x6E1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x224C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x718 DUP3 PUSH2 0x6EF JUMP JUMPDEST PUSH2 0x729 DUP2 PUSH2 0x724 PUSH2 0x12CA JUMP JUMPDEST PUSH2 0x12D2 JUMP JUMPDEST PUSH2 0x733 DUP4 DUP4 PUSH2 0x136F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x740 PUSH2 0x12CA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7AD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A4 SWAP1 PUSH2 0x22F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7B7 DUP3 DUP3 PUSH2 0x144F JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x6 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x85C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x853 SWAP1 PUSH2 0x235C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x429E5A8F4E1289616A7CA758E14BD7070BBDB21D11F443824C6738D41B4432C2 DUP2 PUSH1 0x40 MLOAD PUSH2 0x88B SWAP2 SWAP1 PUSH2 0x1C47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x3 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x8DB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x776EC9D2AD2A989538DB0C4F163462480D393F71E37A4FFD62689425EC14A08E DUP2 PUSH1 0x40 MLOAD PUSH2 0x90E SWAP2 SWAP1 PUSH2 0x1C47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 PUSH2 0x94B DUP2 PUSH2 0x946 PUSH2 0x12CA JUMP JUMPDEST PUSH2 0x12D2 JUMP JUMPDEST PUSH2 0x975 PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP4 PUSH2 0x70F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x9AB PUSH2 0x1801 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0xA29 SWAP1 PUSH2 0x23AB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA55 SWAP1 PUSH2 0x23AB JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA77 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA85 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0xACA SWAP1 PUSH2 0x23AB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF6 SWAP1 PUSH2 0x23AB JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB43 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB18 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB43 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB26 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0xB6B SWAP1 PUSH2 0x23AB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB97 SWAP1 PUSH2 0x23AB JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBE4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBB9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBE4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBC7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH2 0xC6B SWAP1 PUSH2 0x23AB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC97 SWAP1 PUSH2 0x23AB JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCE4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCB9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xCE4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCC7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0xD19 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0xD58 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD4F SWAP1 PUSH2 0x244F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0xDA8 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST DUP4 PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xE21 JUMPI PUSH2 0xE0E PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xDF4 JUMPI PUSH2 0xDF3 PUSH2 0x246F JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xE09 SWAP2 SWAP1 PUSH2 0x1C0B JUMP JUMPDEST PUSH2 0x1531 JUMP JUMPDEST DUP1 DUP1 PUSH2 0xE19 SWAP1 PUSH2 0x24CD JUMP JUMPDEST SWAP2 POP POP PUSH2 0xDB2 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x4 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0xE53 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEFA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEF1 SWAP1 PUSH2 0x235C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x7 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xF21 SWAP3 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST POP DUP2 PUSH1 0x8 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xF49 SWAP3 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST POP DUP1 PUSH1 0x9 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xF71 SWAP3 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST POP PUSH32 0xFD025D83852F29D01B58FD4B19D8CFE0E12AF0EE9F31A7E273EA765CD4DD8620 DUP5 CALLER DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0xFA9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0xFC0 DUP3 PUSH2 0x6EF JUMP JUMPDEST PUSH2 0xFD1 DUP2 PUSH2 0xFCC PUSH2 0x12CA JUMP JUMPDEST PUSH2 0x12D2 JUMP JUMPDEST PUSH2 0xFDB DUP4 DUP4 PUSH2 0x144F JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x6 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1081 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1078 SWAP1 PUSH2 0x25D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x6 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST CALLER PUSH1 0x6 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x7 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1154 SWAP3 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST POP DUP2 PUSH1 0x8 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x117E SWAP3 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST POP DUP1 PUSH1 0x9 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x11A8 SWAP3 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST POP TIMESTAMP PUSH1 0xA PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x54362B36D34EFDDA9F90402E88C73FD5B6D780EA5A94052317E4664B31AACC38 PUSH1 0x2 SLOAD CALLER PUSH1 0x7 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x8 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x9 PUSH1 0x0 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x1238 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x268E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x2 SLOAD PUSH2 0x124F SWAP2 SWAP1 PUSH2 0x26F6 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x12DC DUP3 DUP3 PUSH2 0xBF3 JUMP JUMPDEST PUSH2 0x136B JUMPI PUSH2 0x1301 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x14 PUSH2 0x153F JUMP JUMPDEST PUSH2 0x130F DUP4 PUSH1 0x0 SHR PUSH1 0x20 PUSH2 0x153F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1320 SWAP3 SWAP2 SWAP1 PUSH2 0x2820 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1362 SWAP2 SWAP1 PUSH2 0x1E09 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1379 DUP3 DUP3 PUSH2 0xBF3 JUMP JUMPDEST PUSH2 0x144B JUMPI PUSH1 0x1 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x13F0 PUSH2 0x12CA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1459 DUP3 DUP3 PUSH2 0xBF3 JUMP JUMPDEST ISZERO PUSH2 0x152D JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x14D2 PUSH2 0x12CA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x153B DUP3 DUP3 PUSH2 0x136F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x2 DUP4 PUSH1 0x2 PUSH2 0x1552 SWAP2 SWAP1 PUSH2 0x285A JUMP JUMPDEST PUSH2 0x155C SWAP2 SWAP1 PUSH2 0x26F6 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1575 JUMPI PUSH2 0x1574 PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x15A7 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x15DF JUMPI PUSH2 0x15DE PUSH2 0x246F JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1643 JUMPI PUSH2 0x1642 PUSH2 0x246F JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH1 0x1 DUP5 PUSH1 0x2 PUSH2 0x1683 SWAP2 SWAP1 PUSH2 0x285A JUMP JUMPDEST PUSH2 0x168D SWAP2 SWAP1 PUSH2 0x26F6 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x172D JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xF DUP7 AND PUSH1 0x10 DUP2 LT PUSH2 0x16CF JUMPI PUSH2 0x16CE PUSH2 0x246F JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x16E6 JUMPI PUSH2 0x16E5 PUSH2 0x246F JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 DUP6 SWAP1 SHR SWAP5 POP DUP1 PUSH2 0x1726 SWAP1 PUSH2 0x28B4 JUMP JUMPDEST SWAP1 POP PUSH2 0x1690 JUMP JUMPDEST POP PUSH1 0x0 DUP5 EQ PUSH2 0x1771 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1768 SWAP1 PUSH2 0x292A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1787 SWAP1 PUSH2 0x23AB JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x17A9 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x17F0 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x17C2 JUMPI DUP1 CALLDATALOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x17F0 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x17F0 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x17EF JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x17D4 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x17FD SWAP2 SWAP1 PUSH2 0x18CC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1852 SWAP1 PUSH2 0x23AB JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1874 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x18BB JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x188D JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x18BB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x18BB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x18BA JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x189F JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x18C8 SWAP2 SWAP1 PUSH2 0x18CC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x18E5 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x18CD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1932 DUP2 PUSH2 0x18FD JUMP JUMPDEST DUP2 EQ PUSH2 0x193D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x194F DUP2 PUSH2 0x1929 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x196B JUMPI PUSH2 0x196A PUSH2 0x18F3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1979 DUP5 DUP3 DUP6 ADD PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1997 DUP2 PUSH2 0x1982 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19B2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x198E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19CB DUP2 PUSH2 0x19B8 JUMP JUMPDEST DUP2 EQ PUSH2 0x19D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E8 DUP2 PUSH2 0x19C2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A04 JUMPI PUSH2 0x1A03 PUSH2 0x18F3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A12 DUP5 DUP3 DUP6 ADD PUSH2 0x19D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1A40 JUMPI PUSH2 0x1A3F PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A5D JUMPI PUSH2 0x1A5C PUSH2 0x1A20 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1A79 JUMPI PUSH2 0x1A78 PUSH2 0x1A25 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1A99 JUMPI PUSH2 0x1A98 PUSH2 0x18F3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AA7 DUP7 DUP3 DUP8 ADD PUSH2 0x19D9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AC8 JUMPI PUSH2 0x1AC7 PUSH2 0x18F8 JUMP JUMPDEST JUMPDEST PUSH2 0x1AD4 DUP7 DUP3 DUP8 ADD PUSH2 0x1A2A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AF3 DUP2 PUSH2 0x1AE0 JUMP JUMPDEST DUP2 EQ PUSH2 0x1AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1B10 DUP2 PUSH2 0x1AEA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B2C JUMPI PUSH2 0x1B2B PUSH2 0x18F3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B3A DUP5 DUP3 DUP6 ADD PUSH2 0x1B01 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B4C DUP2 PUSH2 0x1AE0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B67 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B43 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B98 DUP3 PUSH2 0x1B6D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BA8 DUP2 PUSH2 0x1B8D JUMP JUMPDEST DUP2 EQ PUSH2 0x1BB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1BC5 DUP2 PUSH2 0x1B9F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BE2 JUMPI PUSH2 0x1BE1 PUSH2 0x18F3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1BF0 DUP6 DUP3 DUP7 ADD PUSH2 0x1B01 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C01 DUP6 DUP3 DUP7 ADD PUSH2 0x1BB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C21 JUMPI PUSH2 0x1C20 PUSH2 0x18F3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C2F DUP5 DUP3 DUP6 ADD PUSH2 0x1BB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1C41 DUP2 PUSH2 0x19B8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1C5C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C38 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1C6B DUP2 PUSH2 0x19B8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1C7A DUP2 PUSH2 0x1B8D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1CBA JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1C9F JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1CC9 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CEB DUP3 PUSH2 0x1C80 JUMP JUMPDEST PUSH2 0x1CF5 DUP2 DUP6 PUSH2 0x1C8B JUMP JUMPDEST SWAP4 POP PUSH2 0x1D05 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1C9C JUMP JUMPDEST PUSH2 0x1D0E DUP2 PUSH2 0x1CCF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x1D31 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x1C62 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1D44 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1C71 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1D5C DUP3 DUP3 PUSH2 0x1CE0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1D76 DUP3 DUP3 PUSH2 0x1CE0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x1D90 DUP3 DUP3 PUSH2 0x1CE0 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1DB7 DUP2 DUP5 PUSH2 0x1D19 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DDB DUP3 PUSH2 0x1C80 JUMP JUMPDEST PUSH2 0x1DE5 DUP2 DUP6 PUSH2 0x1DBF JUMP JUMPDEST SWAP4 POP PUSH2 0x1DF5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1C9C JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x1CCF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1E23 DUP2 DUP5 PUSH2 0x1DD0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1E41 JUMPI PUSH2 0x1E40 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E5E JUMPI PUSH2 0x1E5D PUSH2 0x1A20 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1E7A JUMPI PUSH2 0x1E79 PUSH2 0x1A25 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1E9A JUMPI PUSH2 0x1E99 PUSH2 0x18F3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1EA8 DUP7 DUP3 DUP8 ADD PUSH2 0x19D9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EC9 JUMPI PUSH2 0x1EC8 PUSH2 0x18F8 JUMP JUMPDEST JUMPDEST PUSH2 0x1ED5 DUP7 DUP3 DUP8 ADD PUSH2 0x1E2B JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1F1E DUP3 PUSH2 0x1CCF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1F3D JUMPI PUSH2 0x1F3C PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F50 PUSH2 0x18E9 JUMP JUMPDEST SWAP1 POP PUSH2 0x1F5C DUP3 DUP3 PUSH2 0x1F15 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1F7C JUMPI PUSH2 0x1F7B PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x1F85 DUP3 PUSH2 0x1CCF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FB4 PUSH2 0x1FAF DUP5 PUSH2 0x1F61 JUMP JUMPDEST PUSH2 0x1F46 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1FD0 JUMPI PUSH2 0x1FCF PUSH2 0x1EE1 JUMP JUMPDEST JUMPDEST PUSH2 0x1FDB DUP5 DUP3 DUP6 PUSH2 0x1F92 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1FF8 JUMPI PUSH2 0x1FF7 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2008 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1FA1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x202B JUMPI PUSH2 0x202A PUSH2 0x18F3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2039 DUP8 DUP3 DUP9 ADD PUSH2 0x19D9 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x205A JUMPI PUSH2 0x2059 PUSH2 0x18F8 JUMP JUMPDEST JUMPDEST PUSH2 0x2066 DUP8 DUP3 DUP9 ADD PUSH2 0x1FE3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2087 JUMPI PUSH2 0x2086 PUSH2 0x18F8 JUMP JUMPDEST JUMPDEST PUSH2 0x2093 DUP8 DUP3 DUP9 ADD PUSH2 0x1FE3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20B4 JUMPI PUSH2 0x20B3 PUSH2 0x18F8 JUMP JUMPDEST JUMPDEST PUSH2 0x20C0 DUP8 DUP3 DUP9 ADD PUSH2 0x1FE3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20E3 JUMPI PUSH2 0x20E2 PUSH2 0x18F3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x20F1 DUP6 DUP3 DUP7 ADD PUSH2 0x1BB6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2102 DUP6 DUP3 DUP7 ADD PUSH2 0x19D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2125 JUMPI PUSH2 0x2124 PUSH2 0x18F3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2143 JUMPI PUSH2 0x2142 PUSH2 0x18F8 JUMP JUMPDEST JUMPDEST PUSH2 0x214F DUP7 DUP3 DUP8 ADD PUSH2 0x1FE3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2170 JUMPI PUSH2 0x216F PUSH2 0x18F8 JUMP JUMPDEST JUMPDEST PUSH2 0x217C DUP7 DUP3 DUP8 ADD PUSH2 0x1FE3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x219D JUMPI PUSH2 0x219C PUSH2 0x18F8 JUMP JUMPDEST JUMPDEST PUSH2 0x21A9 DUP7 DUP3 DUP8 ADD PUSH2 0x1FE3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x416C726561647920766572696669656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21E9 PUSH1 0x10 DUP4 PUSH2 0x1DBF JUMP JUMPDEST SWAP2 POP PUSH2 0x21F4 DUP3 PUSH2 0x21B3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2218 DUP2 PUSH2 0x21DC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x222B DUP4 DUP6 PUSH2 0x1DBF JUMP JUMPDEST SWAP4 POP PUSH2 0x2238 DUP4 DUP6 DUP5 PUSH2 0x1F92 JUMP JUMPDEST PUSH2 0x2241 DUP4 PUSH2 0x1CCF JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2261 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C38 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2274 DUP2 DUP5 DUP7 PUSH2 0x221F JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22DA PUSH1 0x2F DUP4 PUSH2 0x1DBF JUMP JUMPDEST SWAP2 POP PUSH2 0x22E5 DUP3 PUSH2 0x227E JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2309 DUP2 PUSH2 0x22CD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F662064617070000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2346 PUSH1 0x11 DUP4 PUSH2 0x1DBF JUMP JUMPDEST SWAP2 POP PUSH2 0x2351 DUP3 PUSH2 0x2310 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2375 DUP2 PUSH2 0x2339 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x23C3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x23D7 JUMPI PUSH2 0x23D6 PUSH2 0x237C JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2439 PUSH1 0x2E DUP4 PUSH2 0x1DBF JUMP JUMPDEST SWAP2 POP PUSH2 0x2444 DUP3 PUSH2 0x23DD JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2468 DUP2 PUSH2 0x242C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x24D8 DUP3 PUSH2 0x19B8 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x250B JUMPI PUSH2 0x250A PUSH2 0x249E JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x251F DUP2 PUSH2 0x1B8D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x253A PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1C38 JUMP JUMPDEST PUSH2 0x2547 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2516 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x2559 DUP2 DUP7 PUSH2 0x1DD0 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x256D DUP2 DUP6 PUSH2 0x1DD0 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2581 DUP2 DUP5 PUSH2 0x1DD0 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25C3 PUSH1 0x9 DUP4 PUSH2 0x1DBF JUMP JUMPDEST SWAP2 POP PUSH2 0x25CE DUP3 PUSH2 0x258D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x25F2 DUP2 PUSH2 0x25B6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x261B DUP2 PUSH2 0x23AB JUMP JUMPDEST PUSH2 0x2625 DUP2 DUP7 PUSH2 0x1DBF JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2640 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2652 JUMPI PUSH2 0x2685 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP PUSH2 0x2685 JUMP JUMPDEST PUSH2 0x265B DUP6 PUSH2 0x25F9 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x267D JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x265E JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x26A3 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1C38 JUMP JUMPDEST PUSH2 0x26B0 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2516 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x26C2 DUP2 DUP7 PUSH2 0x260E JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x26D6 DUP2 DUP6 PUSH2 0x260E JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x26EA DUP2 DUP5 PUSH2 0x260E JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2701 DUP3 PUSH2 0x19B8 JUMP JUMPDEST SWAP2 POP PUSH2 0x270C DUP4 PUSH2 0x19B8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2741 JUMPI PUSH2 0x2740 PUSH2 0x249E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x278D PUSH1 0x17 DUP4 PUSH2 0x274C JUMP JUMPDEST SWAP2 POP PUSH2 0x2798 DUP3 PUSH2 0x2757 JUMP JUMPDEST PUSH1 0x17 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27AE DUP3 PUSH2 0x1C80 JUMP JUMPDEST PUSH2 0x27B8 DUP2 DUP6 PUSH2 0x274C JUMP JUMPDEST SWAP4 POP PUSH2 0x27C8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1C9C JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280A PUSH1 0x11 DUP4 PUSH2 0x274C JUMP JUMPDEST SWAP2 POP PUSH2 0x2815 DUP3 PUSH2 0x27D4 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x282B DUP3 PUSH2 0x2780 JUMP JUMPDEST SWAP2 POP PUSH2 0x2837 DUP3 DUP6 PUSH2 0x27A3 JUMP JUMPDEST SWAP2 POP PUSH2 0x2842 DUP3 PUSH2 0x27FD JUMP JUMPDEST SWAP2 POP PUSH2 0x284E DUP3 DUP5 PUSH2 0x27A3 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2865 DUP3 PUSH2 0x19B8 JUMP JUMPDEST SWAP2 POP PUSH2 0x2870 DUP4 PUSH2 0x19B8 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x28A9 JUMPI PUSH2 0x28A8 PUSH2 0x249E JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28BF DUP3 PUSH2 0x19B8 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x28D3 JUMPI PUSH2 0x28D2 PUSH2 0x249E JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2914 PUSH1 0x20 DUP4 PUSH2 0x1DBF JUMP JUMPDEST SWAP2 POP PUSH2 0x291F DUP3 PUSH2 0x28DE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2943 DUP2 PUSH2 0x2907 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP16 0xE 0xE7 PUSH13 0xEF5F412B12AABF5D0EEE3507E9 PUSH11 0x3D036A8AF51C0CAE456831 RETURN MLOAD DUP13 PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ", + "sourceMap": "198:3655:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2605:202:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2978:203:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3574:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3977:121:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4348:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5365:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2589:383:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3187:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3455:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;260:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;352:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2403:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2894:137:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;403:38:7;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2012:49:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1051:275:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2003:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4727:147:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3271:174:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1481:516;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;326:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2605:202:1;2690:4;2728:32;2713:47;;;:11;:47;;;;:87;;;;2764:36;2788:11;2764:23;:36::i;:::-;2713:87;2706:94;;2605:202;;;:::o;2978:203:7:-;297:23;2490:30:1;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;3080:5:7::1;3057:28;;:11;:19;3069:6;3057:19;;;;;;;;;;;;;;;;;;;;;:28;;;3049:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3138:4;3116:11;:19;3128:6;3116:19;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3157:17;3167:6;3157:17;;;;;;:::i;:::-;;;;;;;;2978:203:::0;;:::o;3574:277::-;297:23;2490:30:1;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;3700:11:7::1;;3687:12;:24;3679:33;;;::::0;::::1;;3736:12;3722:11;:26;;;;3785:9;;3758:24;:36;;;;;;;:::i;:::-;;3809:35;3821:11;;3834:9;;3809:35;;;;;;;;:::i;:::-;;;;;;;;3574:277:::0;;;;:::o;3977:121:1:-;4043:7;4069:6;:12;4076:4;4069:12;;;;;;;;;;;:22;;;4062:29;;3977:121;;;:::o;4348:145::-;4431:18;4444:4;4431:12;:18::i;:::-;2490:30;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;4461:25:::1;4472:4;4478:7;4461:10;:25::i;:::-;4348:145:::0;;;:::o;5365:214::-;5471:12;:10;:12::i;:::-;5460:23;;:7;:23;;;5452:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5546:26;5558:4;5564:7;5546:11;:26::i;:::-;5365:214;;:::o;2589:383:7:-;2669:10;2648:31;;:9;:17;2658:6;2648:17;;;;;;;;;;;;;;;;;;;;;:31;;;2640:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;2896:18;2907:6;2896:18;;;;;;:::i;:::-;;;;;;;;2932:10;2924:28;;:41;2953:11;;2924:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2589:383;:::o;3187:78::-;3241:17;3251:6;3241:17;;;;;;:::i;:::-;;;;;;;;3187:78;:::o;3455:114::-;297:23;2490:30:1;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;3530:32:7::1;297:23;3552:9;3530;:32::i;:::-;3455:114:::0;;:::o;260:60::-;297:23;260:60;:::o;352:23::-;;;;:::o;2403:180::-;2459:10;;:::i;:::-;2488:88;;;;;;;;2492:6;2488:88;;;;2500:9;:17;2510:6;2500:17;;;;;;;;;;;;;;;;;;;;;2488:88;;;;;;2519:7;:15;2527:6;2519:15;;;;;;;;;;;2488:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:11;:19;2548:6;2536:19;;;;;;;;;;;2488:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2557:10;:18;2568:6;2557:18;;;;;;;;;;;2488:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2481:95;;2403:180;;;:::o;2894:137:1:-;2972:4;2995:6;:12;3002:4;2995:12;;;;;;;;;;;:20;;:29;3016:7;2995:29;;;;;;;;;;;;;;;;;;;;;;;;;2988:36;;2894:137;;;;:::o;403:38:7:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2012:49:1:-;2057:4;2012:49;;;:::o;1051:275:7:-;2030:13:0;;;;;;;;;;;:30;;;;2048:12;;;;;;;;;;2047:13;2030:30;2022:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;2122:19;2145:13;;;;;;;;;;;2144:14;2122:36;;2172:14;2168:98;;;2218:4;2202:13;;:20;;;;;;;;;;;;;;;;;;2251:4;2236:12;;:19;;;;;;;;;;;;;;;;;;2168:98;1160:12:7::1;1146:11;:26;;;;1186:6;1182:94;1199:6;;:13;;1197:1;:15;1182:94;;;1232:33;297:23;1255:6;;1262:1;1255:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1232:10;:33::i;:::-;1213:3;;;;;:::i;:::-;;;;1182:94;;;;1293:1;1285:5;:9;;;;1318:1;1304:11;:15;;;;2292:14:0::0;2288:66;;;2338:5;2322:13;;:21;;;;;;;;;;;;;;;;;;2288:66;2012:348;1051:275:7;;;:::o;2003:394::-;2159:10;2138:31;;:9;:17;2148:6;2138:17;;;;;;;;;;;;;;;;;;;;;:31;;;2130:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;2219:5;2201:7;:15;2209:6;2201:15;;;;;;;;;;;:23;;;;;;;;;;;;:::i;:::-;;2256:9;2234:11;:19;2246:6;2234:19;;;;;;;;;;;:31;;;;;;;;;;;;:::i;:::-;;2296:15;2275:10;:18;2286:6;2275:18;;;;;;;;;;;:36;;;;;;;;;;;;:::i;:::-;;2326:64;2336:6;2344:10;2356:5;2363:9;2374:15;2326:64;;;;;;;;;;:::i;:::-;;;;;;;;2003:394;;;;:::o;4727:147:1:-;4811:18;4824:4;4811:12;:18::i;:::-;2490:30;2501:4;2507:12;:10;:12::i;:::-;2490:10;:30::i;:::-;4841:26:::1;4853:4;4859:7;4841:11;:26::i;:::-;4727:147:::0;;;:::o;3271:174:7:-;3375:10;3354:31;;:9;:17;3364:6;3354:17;;;;;;;;;;;;;;;;;;;;;:31;;;3346:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;3429:9;3409;:17;3419:6;3409:17;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3271:174;;:::o;1481:516::-;1696:10;1677:9;:16;1687:5;;1677:16;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1733:5;1716:7;:14;1724:5;;1716:14;;;;;;;;;;;:22;;;;;;;;;;;;:::i;:::-;;1769:9;1748:11;:18;1760:5;;1748:18;;;;;;;;;;;:30;;;;;;;;;;;;:::i;:::-;;1808:15;1788:10;:17;1799:5;;1788:17;;;;;;;;;;;:35;;;;;;;;;;;;:::i;:::-;;1853:15;1833:10;:17;1844:5;;1833:17;;;;;;;;;;;:35;;;;1883:80;1890:5;;1897:10;1909:7;:14;1917:5;;1909:14;;;;;;;;;;;1925:11;:18;1937:5;;1925:18;;;;;;;;;;;1945:10;:17;1956:5;;1945:17;;;;;;;;;;;1883:80;;;;;;;;;;:::i;:::-;;;;;;;;1989:1;1981:5;;:9;;;;:::i;:::-;1973:5;:17;;;;1481:516;;;:::o;326:20::-;;;;:::o;829:155:5:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;640:96:3:-;693:7;719:10;712:17;;640:96;:::o;3312:484:1:-;3392:22;3400:4;3406:7;3392;:22::i;:::-;3387:403;;3575:41;3603:7;3575:41;;3613:2;3575:19;:41::i;:::-;3687:38;3715:4;3707:13;;3722:2;3687:19;:38::i;:::-;3482:265;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3430:349;;;;;;;;;;;:::i;:::-;;;;;;;;3387:403;3312:484;;:::o;6822:233::-;6905:22;6913:4;6919:7;6905;:22::i;:::-;6900:149;;6975:4;6943:6;:12;6950:4;6943:12;;;;;;;;;;;:20;;:29;6964:7;6943:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7025:12;:10;:12::i;:::-;6998:40;;7016:7;6998:40;;7010:4;6998:40;;;;;;;;;;6900:149;6822:233;;:::o;7180:234::-;7263:22;7271:4;7277:7;7263;:22::i;:::-;7259:149;;;7333:5;7301:6;:12;7308:4;7301:12;;;;;;;;;;;:20;;:29;7322:7;7301:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7384:12;:10;:12::i;:::-;7357:40;;7375:7;7357:40;;7369:4;7357:40;;;;;;;;;;7259:149;7180:234;;:::o;6218:110::-;6296:25;6307:4;6313:7;6296:10;:25::i;:::-;6218:110;;:::o;1588:441:4:-;1663:13;1688:19;1733:1;1724:6;1720:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1710:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:47;;1745:15;:6;1752:1;1745:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1770;:6;1777:1;1770:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1800:9;1825:1;1816:6;1812:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1800:26;;1795:132;1832:1;1828;:5;1795:132;;;1866:12;1887:3;1879:5;:11;1866:25;;;;;;;:::i;:::-;;;;;1854:6;1861:1;1854:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1915:1;1905:11;;;;;1835:3;;;;:::i;:::-;;;1795:132;;;;1953:1;1944:5;:10;1936:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2015:6;2001:21;;;1588:441;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:9:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:117::-;2318:1;2315;2308:12;2332:117;2441:1;2438;2431:12;2455:117;2564:1;2561;2554:12;2592:553;2650:8;2660:6;2710:3;2703:4;2695:6;2691:17;2687:27;2677:122;;2718:79;;:::i;:::-;2677:122;2831:6;2818:20;2808:30;;2861:18;2853:6;2850:30;2847:117;;;2883:79;;:::i;:::-;2847:117;2997:4;2989:6;2985:17;2973:29;;3051:3;3043:4;3035:6;3031:17;3021:8;3017:32;3014:41;3011:128;;;3058:79;;:::i;:::-;3011:128;2592:553;;;;;:::o;3151:674::-;3231:6;3239;3247;3296:2;3284:9;3275:7;3271:23;3267:32;3264:119;;;3302:79;;:::i;:::-;3264:119;3422:1;3447:53;3492:7;3483:6;3472:9;3468:22;3447:53;:::i;:::-;3437:63;;3393:117;3577:2;3566:9;3562:18;3549:32;3608:18;3600:6;3597:30;3594:117;;;3630:79;;:::i;:::-;3594:117;3743:65;3800:7;3791:6;3780:9;3776:22;3743:65;:::i;:::-;3725:83;;;;3520:298;3151:674;;;;;:::o;3831:77::-;3868:7;3897:5;3886:16;;3831:77;;;:::o;3914:122::-;3987:24;4005:5;3987:24;:::i;:::-;3980:5;3977:35;3967:63;;4026:1;4023;4016:12;3967:63;3914:122;:::o;4042:139::-;4088:5;4126:6;4113:20;4104:29;;4142:33;4169:5;4142:33;:::i;:::-;4042:139;;;;:::o;4187:329::-;4246:6;4295:2;4283:9;4274:7;4270:23;4266:32;4263:119;;;4301:79;;:::i;:::-;4263:119;4421:1;4446:53;4491:7;4482:6;4471:9;4467:22;4446:53;:::i;:::-;4436:63;;4392:117;4187:329;;;;:::o;4522:118::-;4609:24;4627:5;4609:24;:::i;:::-;4604:3;4597:37;4522:118;;:::o;4646:222::-;4739:4;4777:2;4766:9;4762:18;4754:26;;4790:71;4858:1;4847:9;4843:17;4834:6;4790:71;:::i;:::-;4646:222;;;;:::o;4874:126::-;4911:7;4951:42;4944:5;4940:54;4929:65;;4874:126;;;:::o;5006:96::-;5043:7;5072:24;5090:5;5072:24;:::i;:::-;5061:35;;5006:96;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:329::-;5920:6;5969:2;5957:9;5948:7;5944:23;5940:32;5937:119;;;5975:79;;:::i;:::-;5937:119;6095:1;6120:53;6165:7;6156:6;6145:9;6141:22;6120:53;:::i;:::-;6110:63;;6066:117;5861:329;;;;:::o;6196:118::-;6283:24;6301:5;6283:24;:::i;:::-;6278:3;6271:37;6196:118;;:::o;6320:222::-;6413:4;6451:2;6440:9;6436:18;6428:26;;6464:71;6532:1;6521:9;6517:17;6508:6;6464:71;:::i;:::-;6320:222;;;;:::o;6548:108::-;6625:24;6643:5;6625:24;:::i;:::-;6620:3;6613:37;6548:108;;:::o;6662:::-;6739:24;6757:5;6739:24;:::i;:::-;6734:3;6727:37;6662:108;;:::o;6776:99::-;6828:6;6862:5;6856:12;6846:22;;6776:99;;;:::o;6881:159::-;6955:11;6989:6;6984:3;6977:19;7029:4;7024:3;7020:14;7005:29;;6881:159;;;;:::o;7046:307::-;7114:1;7124:113;7138:6;7135:1;7132:13;7124:113;;;7223:1;7218:3;7214:11;7208:18;7204:1;7199:3;7195:11;7188:39;7160:2;7157:1;7153:10;7148:15;;7124:113;;;7255:6;7252:1;7249:13;7246:101;;;7335:1;7326:6;7321:3;7317:16;7310:27;7246:101;7095:258;7046:307;;;:::o;7359:102::-;7400:6;7451:2;7447:7;7442:2;7435:5;7431:14;7427:28;7417:38;;7359:102;;;:::o;7467:344::-;7545:3;7573:39;7606:5;7573:39;:::i;:::-;7628:61;7682:6;7677:3;7628:61;:::i;:::-;7621:68;;7698:52;7743:6;7738:3;7731:4;7724:5;7720:16;7698:52;:::i;:::-;7775:29;7797:6;7775:29;:::i;:::-;7770:3;7766:39;7759:46;;7549:262;7467:344;;;;:::o;7869:1281::-;7978:3;8014:4;8009:3;8005:14;8102:4;8095:5;8091:16;8085:23;8121:63;8178:4;8173:3;8169:14;8155:12;8121:63;:::i;:::-;8029:165;8280:4;8273:5;8269:16;8263:23;8299:63;8356:4;8351:3;8347:14;8333:12;8299:63;:::i;:::-;8204:168;8457:4;8450:5;8446:16;8440:23;8510:3;8504:4;8500:14;8493:4;8488:3;8484:14;8477:38;8536:73;8604:4;8590:12;8536:73;:::i;:::-;8528:81;;8382:238;8709:4;8702:5;8698:16;8692:23;8762:3;8756:4;8752:14;8745:4;8740:3;8736:14;8729:38;8788:73;8856:4;8842:12;8788:73;:::i;:::-;8780:81;;8630:242;8960:4;8953:5;8949:16;8943:23;9013:3;9007:4;9003:14;8996:4;8991:3;8987:14;8980:38;9039:73;9107:4;9093:12;9039:73;:::i;:::-;9031:81;;8882:241;9140:4;9133:11;;7983:1167;7869:1281;;;;:::o;9156:353::-;9289:4;9327:2;9316:9;9312:18;9304:26;;9376:9;9370:4;9366:20;9362:1;9351:9;9347:17;9340:47;9404:98;9497:4;9488:6;9404:98;:::i;:::-;9396:106;;9156:353;;;;:::o;9515:169::-;9599:11;9633:6;9628:3;9621:19;9673:4;9668:3;9664:14;9649:29;;9515:169;;;;:::o;9690:364::-;9778:3;9806:39;9839:5;9806:39;:::i;:::-;9861:71;9925:6;9920:3;9861:71;:::i;:::-;9854:78;;9941:52;9986:6;9981:3;9974:4;9967:5;9963:16;9941:52;:::i;:::-;10018:29;10040:6;10018:29;:::i;:::-;10013:3;10009:39;10002:46;;9782:272;9690:364;;;;:::o;10060:313::-;10173:4;10211:2;10200:9;10196:18;10188:26;;10260:9;10254:4;10250:20;10246:1;10235:9;10231:17;10224:47;10288:78;10361:4;10352:6;10288:78;:::i;:::-;10280:86;;10060:313;;;;:::o;10396:568::-;10469:8;10479:6;10529:3;10522:4;10514:6;10510:17;10506:27;10496:122;;10537:79;;:::i;:::-;10496:122;10650:6;10637:20;10627:30;;10680:18;10672:6;10669:30;10666:117;;;10702:79;;:::i;:::-;10666:117;10816:4;10808:6;10804:17;10792:29;;10870:3;10862:4;10854:6;10850:17;10840:8;10836:32;10833:41;10830:128;;;10877:79;;:::i;:::-;10830:128;10396:568;;;;;:::o;10970:704::-;11065:6;11073;11081;11130:2;11118:9;11109:7;11105:23;11101:32;11098:119;;;11136:79;;:::i;:::-;11098:119;11256:1;11281:53;11326:7;11317:6;11306:9;11302:22;11281:53;:::i;:::-;11271:63;;11227:117;11411:2;11400:9;11396:18;11383:32;11442:18;11434:6;11431:30;11428:117;;;11464:79;;:::i;:::-;11428:117;11577:80;11649:7;11640:6;11629:9;11625:22;11577:80;:::i;:::-;11559:98;;;;11354:313;10970:704;;;;;:::o;11680:117::-;11789:1;11786;11779:12;11803:180;11851:77;11848:1;11841:88;11948:4;11945:1;11938:15;11972:4;11969:1;11962:15;11989:281;12072:27;12094:4;12072:27;:::i;:::-;12064:6;12060:40;12202:6;12190:10;12187:22;12166:18;12154:10;12151:34;12148:62;12145:88;;;12213:18;;:::i;:::-;12145:88;12253:10;12249:2;12242:22;12032:238;11989:281;;:::o;12276:129::-;12310:6;12337:20;;:::i;:::-;12327:30;;12366:33;12394:4;12386:6;12366:33;:::i;:::-;12276:129;;;:::o;12411:308::-;12473:4;12563:18;12555:6;12552:30;12549:56;;;12585:18;;:::i;:::-;12549:56;12623:29;12645:6;12623:29;:::i;:::-;12615:37;;12707:4;12701;12697:15;12689:23;;12411:308;;;:::o;12725:154::-;12809:6;12804:3;12799;12786:30;12871:1;12862:6;12857:3;12853:16;12846:27;12725:154;;;:::o;12885:412::-;12963:5;12988:66;13004:49;13046:6;13004:49;:::i;:::-;12988:66;:::i;:::-;12979:75;;13077:6;13070:5;13063:21;13115:4;13108:5;13104:16;13153:3;13144:6;13139:3;13135:16;13132:25;13129:112;;;13160:79;;:::i;:::-;13129:112;13250:41;13284:6;13279:3;13274;13250:41;:::i;:::-;12969:328;12885:412;;;;;:::o;13317:340::-;13373:5;13422:3;13415:4;13407:6;13403:17;13399:27;13389:122;;13430:79;;:::i;:::-;13389:122;13547:6;13534:20;13572:79;13647:3;13639:6;13632:4;13624:6;13620:17;13572:79;:::i;:::-;13563:88;;13379:278;13317:340;;;;:::o;13663:1305::-;13779:6;13787;13795;13803;13852:3;13840:9;13831:7;13827:23;13823:33;13820:120;;;13859:79;;:::i;:::-;13820:120;13979:1;14004:53;14049:7;14040:6;14029:9;14025:22;14004:53;:::i;:::-;13994:63;;13950:117;14134:2;14123:9;14119:18;14106:32;14165:18;14157:6;14154:30;14151:117;;;14187:79;;:::i;:::-;14151:117;14292:63;14347:7;14338:6;14327:9;14323:22;14292:63;:::i;:::-;14282:73;;14077:288;14432:2;14421:9;14417:18;14404:32;14463:18;14455:6;14452:30;14449:117;;;14485:79;;:::i;:::-;14449:117;14590:63;14645:7;14636:6;14625:9;14621:22;14590:63;:::i;:::-;14580:73;;14375:288;14730:2;14719:9;14715:18;14702:32;14761:18;14753:6;14750:30;14747:117;;;14783:79;;:::i;:::-;14747:117;14888:63;14943:7;14934:6;14923:9;14919:22;14888:63;:::i;:::-;14878:73;;14673:288;13663:1305;;;;;;;:::o;14974:474::-;15042:6;15050;15099:2;15087:9;15078:7;15074:23;15070:32;15067:119;;;15105:79;;:::i;:::-;15067:119;15225:1;15250:53;15295:7;15286:6;15275:9;15271:22;15250:53;:::i;:::-;15240:63;;15196:117;15352:2;15378:53;15423:7;15414:6;15403:9;15399:22;15378:53;:::i;:::-;15368:63;;15323:118;14974:474;;;;;:::o;15454:1159::-;15561:6;15569;15577;15626:2;15614:9;15605:7;15601:23;15597:32;15594:119;;;15632:79;;:::i;:::-;15594:119;15780:1;15769:9;15765:17;15752:31;15810:18;15802:6;15799:30;15796:117;;;15832:79;;:::i;:::-;15796:117;15937:63;15992:7;15983:6;15972:9;15968:22;15937:63;:::i;:::-;15927:73;;15723:287;16077:2;16066:9;16062:18;16049:32;16108:18;16100:6;16097:30;16094:117;;;16130:79;;:::i;:::-;16094:117;16235:63;16290:7;16281:6;16270:9;16266:22;16235:63;:::i;:::-;16225:73;;16020:288;16375:2;16364:9;16360:18;16347:32;16406:18;16398:6;16395:30;16392:117;;;16428:79;;:::i;:::-;16392:117;16533:63;16588:7;16579:6;16568:9;16564:22;16533:63;:::i;:::-;16523:73;;16318:288;15454:1159;;;;;:::o;16619:166::-;16759:18;16755:1;16747:6;16743:14;16736:42;16619:166;:::o;16791:366::-;16933:3;16954:67;17018:2;17013:3;16954:67;:::i;:::-;16947:74;;17030:93;17119:3;17030:93;:::i;:::-;17148:2;17143:3;17139:12;17132:19;;16791:366;;;:::o;17163:419::-;17329:4;17367:2;17356:9;17352:18;17344:26;;17416:9;17410:4;17406:20;17402:1;17391:9;17387:17;17380:47;17444:131;17570:4;17444:131;:::i;:::-;17436:139;;17163:419;;;:::o;17612:304::-;17710:3;17731:71;17795:6;17790:3;17731:71;:::i;:::-;17724:78;;17812:43;17848:6;17843:3;17836:5;17812:43;:::i;:::-;17880:29;17902:6;17880:29;:::i;:::-;17875:3;17871:39;17864:46;;17612:304;;;;;:::o;17922:443::-;18073:4;18111:2;18100:9;18096:18;18088:26;;18124:71;18192:1;18181:9;18177:17;18168:6;18124:71;:::i;:::-;18242:9;18236:4;18232:20;18227:2;18216:9;18212:18;18205:48;18270:88;18353:4;18344:6;18336;18270:88;:::i;:::-;18262:96;;17922:443;;;;;;:::o;18371:234::-;18511:34;18507:1;18499:6;18495:14;18488:58;18580:17;18575:2;18567:6;18563:15;18556:42;18371:234;:::o;18611:366::-;18753:3;18774:67;18838:2;18833:3;18774:67;:::i;:::-;18767:74;;18850:93;18939:3;18850:93;:::i;:::-;18968:2;18963:3;18959:12;18952:19;;18611:366;;;:::o;18983:419::-;19149:4;19187:2;19176:9;19172:18;19164:26;;19236:9;19230:4;19226:20;19222:1;19211:9;19207:17;19200:47;19264:131;19390:4;19264:131;:::i;:::-;19256:139;;18983:419;;;:::o;19408:167::-;19548:19;19544:1;19536:6;19532:14;19525:43;19408:167;:::o;19581:366::-;19723:3;19744:67;19808:2;19803:3;19744:67;:::i;:::-;19737:74;;19820:93;19909:3;19820:93;:::i;:::-;19938:2;19933:3;19929:12;19922:19;;19581:366;;;:::o;19953:419::-;20119:4;20157:2;20146:9;20142:18;20134:26;;20206:9;20200:4;20196:20;20192:1;20181:9;20177:17;20170:47;20234:131;20360:4;20234:131;:::i;:::-;20226:139;;19953:419;;;:::o;20378:180::-;20426:77;20423:1;20416:88;20523:4;20520:1;20513:15;20547:4;20544:1;20537:15;20564:320;20608:6;20645:1;20639:4;20635:12;20625:22;;20692:1;20686:4;20682:12;20713:18;20703:81;;20769:4;20761:6;20757:17;20747:27;;20703:81;20831:2;20823:6;20820:14;20800:18;20797:38;20794:84;;;20850:18;;:::i;:::-;20794:84;20615:269;20564:320;;;:::o;20890:233::-;21030:34;21026:1;21018:6;21014:14;21007:58;21099:16;21094:2;21086:6;21082:15;21075:41;20890:233;:::o;21129:366::-;21271:3;21292:67;21356:2;21351:3;21292:67;:::i;:::-;21285:74;;21368:93;21457:3;21368:93;:::i;:::-;21486:2;21481:3;21477:12;21470:19;;21129:366;;;:::o;21501:419::-;21667:4;21705:2;21694:9;21690:18;21682:26;;21754:9;21748:4;21744:20;21740:1;21729:9;21725:17;21718:47;21782:131;21908:4;21782:131;:::i;:::-;21774:139;;21501:419;;;:::o;21926:180::-;21974:77;21971:1;21964:88;22071:4;22068:1;22061:15;22095:4;22092:1;22085:15;22112:180;22160:77;22157:1;22150:88;22257:4;22254:1;22247:15;22281:4;22278:1;22271:15;22298:233;22337:3;22360:24;22378:5;22360:24;:::i;:::-;22351:33;;22406:66;22399:5;22396:77;22393:103;;;22476:18;;:::i;:::-;22393:103;22523:1;22516:5;22512:13;22505:20;;22298:233;;;:::o;22537:118::-;22624:24;22642:5;22624:24;:::i;:::-;22619:3;22612:37;22537:118;;:::o;22661:937::-;22926:4;22964:3;22953:9;22949:19;22941:27;;22978:71;23046:1;23035:9;23031:17;23022:6;22978:71;:::i;:::-;23059:72;23127:2;23116:9;23112:18;23103:6;23059:72;:::i;:::-;23178:9;23172:4;23168:20;23163:2;23152:9;23148:18;23141:48;23206:78;23279:4;23270:6;23206:78;:::i;:::-;23198:86;;23331:9;23325:4;23321:20;23316:2;23305:9;23301:18;23294:48;23359:78;23432:4;23423:6;23359:78;:::i;:::-;23351:86;;23485:9;23479:4;23475:20;23469:3;23458:9;23454:19;23447:49;23513:78;23586:4;23577:6;23513:78;:::i;:::-;23505:86;;22661:937;;;;;;;;:::o;23604:159::-;23744:11;23740:1;23732:6;23728:14;23721:35;23604:159;:::o;23769:365::-;23911:3;23932:66;23996:1;23991:3;23932:66;:::i;:::-;23925:73;;24007:93;24096:3;24007:93;:::i;:::-;24125:2;24120:3;24116:12;24109:19;;23769:365;;;:::o;24140:419::-;24306:4;24344:2;24333:9;24329:18;24321:26;;24393:9;24387:4;24383:20;24379:1;24368:9;24364:17;24357:47;24421:131;24547:4;24421:131;:::i;:::-;24413:139;;24140:419;;;:::o;24565:141::-;24614:4;24637:3;24629:11;;24660:3;24657:1;24650:14;24694:4;24691:1;24681:18;24673:26;;24565:141;;;:::o;24736:802::-;24821:3;24858:5;24852:12;24887:36;24913:9;24887:36;:::i;:::-;24939:71;25003:6;24998:3;24939:71;:::i;:::-;24932:78;;25041:1;25030:9;25026:17;25057:1;25052:135;;;;25201:1;25196:336;;;;25019:513;;25052:135;25136:4;25132:9;25121;25117:25;25112:3;25105:38;25172:4;25167:3;25163:14;25156:21;;25052:135;;25196:336;25263:38;25295:5;25263:38;:::i;:::-;25323:1;25337:154;25351:6;25348:1;25345:13;25337:154;;;25425:7;25419:14;25415:1;25410:3;25406:11;25399:35;25475:1;25466:7;25462:15;25451:26;;25373:4;25370:1;25366:12;25361:17;;25337:154;;;25520:1;25515:3;25511:11;25504:18;;25203:329;;25019:513;;24825:713;;24736:802;;;;:::o;25544:919::-;25800:4;25838:3;25827:9;25823:19;25815:27;;25852:71;25920:1;25909:9;25905:17;25896:6;25852:71;:::i;:::-;25933:72;26001:2;25990:9;25986:18;25977:6;25933:72;:::i;:::-;26052:9;26046:4;26042:20;26037:2;26026:9;26022:18;26015:48;26080:75;26150:4;26141:6;26080:75;:::i;:::-;26072:83;;26202:9;26196:4;26192:20;26187:2;26176:9;26172:18;26165:48;26230:75;26300:4;26291:6;26230:75;:::i;:::-;26222:83;;26353:9;26347:4;26343:20;26337:3;26326:9;26322:19;26315:49;26381:75;26451:4;26442:6;26381:75;:::i;:::-;26373:83;;25544:919;;;;;;;;:::o;26469:305::-;26509:3;26528:20;26546:1;26528:20;:::i;:::-;26523:25;;26562:20;26580:1;26562:20;:::i;:::-;26557:25;;26716:1;26648:66;26644:74;26641:1;26638:81;26635:107;;;26722:18;;:::i;:::-;26635:107;26766:1;26763;26759:9;26752:16;;26469:305;;;;:::o;26780:148::-;26882:11;26919:3;26904:18;;26780:148;;;;:::o;26934:173::-;27074:25;27070:1;27062:6;27058:14;27051:49;26934:173;:::o;27113:402::-;27273:3;27294:85;27376:2;27371:3;27294:85;:::i;:::-;27287:92;;27388:93;27477:3;27388:93;:::i;:::-;27506:2;27501:3;27497:12;27490:19;;27113:402;;;:::o;27521:377::-;27627:3;27655:39;27688:5;27655:39;:::i;:::-;27710:89;27792:6;27787:3;27710:89;:::i;:::-;27703:96;;27808:52;27853:6;27848:3;27841:4;27834:5;27830:16;27808:52;:::i;:::-;27885:6;27880:3;27876:16;27869:23;;27631:267;27521:377;;;;:::o;27904:167::-;28044:19;28040:1;28032:6;28028:14;28021:43;27904:167;:::o;28077:402::-;28237:3;28258:85;28340:2;28335:3;28258:85;:::i;:::-;28251:92;;28352:93;28441:3;28352:93;:::i;:::-;28470:2;28465:3;28461:12;28454:19;;28077:402;;;:::o;28485:967::-;28867:3;28889:148;29033:3;28889:148;:::i;:::-;28882:155;;29054:95;29145:3;29136:6;29054:95;:::i;:::-;29047:102;;29166:148;29310:3;29166:148;:::i;:::-;29159:155;;29331:95;29422:3;29413:6;29331:95;:::i;:::-;29324:102;;29443:3;29436:10;;28485:967;;;;;:::o;29458:348::-;29498:7;29521:20;29539:1;29521:20;:::i;:::-;29516:25;;29555:20;29573:1;29555:20;:::i;:::-;29550:25;;29743:1;29675:66;29671:74;29668:1;29665:81;29660:1;29653:9;29646:17;29642:105;29639:131;;;29750:18;;:::i;:::-;29639:131;29798:1;29795;29791:9;29780:20;;29458:348;;;;:::o;29812:171::-;29851:3;29874:24;29892:5;29874:24;:::i;:::-;29865:33;;29920:4;29913:5;29910:15;29907:41;;;29928:18;;:::i;:::-;29907:41;29975:1;29968:5;29964:13;29957:20;;29812:171;;;:::o;29989:182::-;30129:34;30125:1;30117:6;30113:14;30106:58;29989:182;:::o;30177:366::-;30319:3;30340:67;30404:2;30399:3;30340:67;:::i;:::-;30333:74;;30416:93;30505:3;30416:93;:::i;:::-;30534:2;30529:3;30525:12;30518:19;;30177:366;;;:::o;30549:419::-;30715:4;30753:2;30742:9;30738:18;30730:26;;30802:9;30796:4;30792:20;30788:1;30777:9;30773:17;30766:47;30830:131;30956:4;30830:131;:::i;:::-;30822:139;;30549:419;;;:::o" }, "methodIdentifiers": { "ADMIN_ROLE()": "75b238fc", @@ -15491,6 +16575,7 @@ "addAdmin(address)": "70480275", "amountToPay()": "7ba13680", "appID()": "f9a6cbae", + "currentDAppStoreIPFSHash()": "93946a82", "deleteApp(uint256)": "6df693d3", "getDAppData(uint256)": "887e4b86", "getRoleAdmin(bytes32)": "248a9ca3", @@ -15504,1588 +16589,10746 @@ "supportsInterface(bytes4)": "01ffc9a7", "transferAppOwner(address,uint256)": "e58cdd90", "updateDApp(uint256,string,string,string)": "ab444f28", + "updateStore(uint256,string)": "1c7828bb", "verifyDApp(uint256)": "1805d79f" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"}],\"name\":\"DeleteApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"NewApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"}],\"name\":\"ReleaseApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"UpdateApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"}],\"name\":\"VerifyApp\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newAdmin\",\"type\":\"address\"}],\"name\":\"addAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"amountToPay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"appID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"deleteApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"getDAppData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"internalType\":\"struct DAppStore.App\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountToPay\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"releaseDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"submitDApp\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"transferAppOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"updateDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"verifyDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DAppStore.sol\":\"DAppStore\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x6287586f5e4a103c89d4dda41406136cdf283cc625bd1ebfdf1468aae5bfe449\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30e2e913292e86a9bce50d51882b23ef57ae4c811003ec96cf39b1781f68b202\",\"dweb:/ipfs/QmUXqjyiAHbEMJ4zLfaduWYuVwp1HozqVhtChe9VfdpjoV\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xb9a137b317dc4806805f2259686186c0c053c32d80fe9c15ecdbf2eb1cf52849\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8910762bea89696c6dc68a63be98c6ddd597955f8a29418661cc99d0ce090663\",\"dweb:/ipfs/Qmed14MXXFdNYE22bCuVy5XVAMKUo1DncY8BF8VkyrvXmh\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/DAppStore.sol\":{\"keccak256\":\"0x04c5d212e01a684ad1825359658acad9fac1ed06773a22832af0f21d591b2829\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://e1848452a2394e2c2f66d393df17877756a4daf557439891831955e095cbdee6\",\"dweb:/ipfs/QmZ92jeFv9Vds2prWt6WGxChWkLzfD5upvdZGCRDHGVaYH\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"}],\"name\":\"DeleteApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"NewApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"}],\"name\":\"ReleaseApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"versionCode\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ipfsHash\",\"type\":\"string\"}],\"name\":\"StoreUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"UpdateApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"}],\"name\":\"VerifyApp\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newAdmin\",\"type\":\"address\"}],\"name\":\"addAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"amountToPay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"appID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentDAppStoreIPFSHash\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"deleteApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"getDAppData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"internalType\":\"struct DAppStore.App\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountToPay\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"releaseDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"submitDApp\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"transferAppOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"updateDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_versionCode\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"}],\"name\":\"updateStore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"verifyDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DAppStore.sol\":\"DAppStore\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x6287586f5e4a103c89d4dda41406136cdf283cc625bd1ebfdf1468aae5bfe449\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30e2e913292e86a9bce50d51882b23ef57ae4c811003ec96cf39b1781f68b202\",\"dweb:/ipfs/QmUXqjyiAHbEMJ4zLfaduWYuVwp1HozqVhtChe9VfdpjoV\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xb9a137b317dc4806805f2259686186c0c053c32d80fe9c15ecdbf2eb1cf52849\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8910762bea89696c6dc68a63be98c6ddd597955f8a29418661cc99d0ce090663\",\"dweb:/ipfs/Qmed14MXXFdNYE22bCuVy5XVAMKUo1DncY8BF8VkyrvXmh\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/DAppStore.sol\":{\"keccak256\":\"0x56275412994a7050190434abfd604e20e119e37037a3ec9f5833d1e7669b9333\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://fe6fb76a44701b7954c746ba1dc9b10d39ef11121d15d96bd938c09d799eec58\",\"dweb:/ipfs/QmUzPcgbzcTnqyfpAuGZeee4efn5iLXKUMEuGaZoHpEdhA\"]}},\"version\":1}" } - } - }, - "sources": { - "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "exportedSymbols": { - "Initializable": [ - 45 - ] - }, - "id": 46, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ + }, + "contracts/NotUpgradableStore.sol": { + "NotUpgradableStore": { + "abi": [ { - "id": 1, - "literals": [ - "solidity", - "^", - "0.8", - ".0" + "inputs": [ + { + "internalType": "uint256", + "name": "_amountToPay", + "type": "uint256" + } ], - "nodeType": "PragmaDirective", - "src": "98:23:0" + "stateMutability": "nonpayable", + "type": "constructor" }, { - "abstract": true, - "baseContracts": [], - "canonicalName": "Initializable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 2, - "nodeType": "StructuredDocumentation", - "src": "123:1490:0", - "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To initialize the implementation contract, you can either invoke the\n initializer manually, or you can include a constructor to automatically mark it as initialized when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() initializer {}\n ```\n ====" - }, - "fullyImplemented": true, - "id": 45, - "linearizedBaseContracts": [ - 45 - ], - "name": "Initializable", - "nameLocation": "1632:13:0", - "nodeType": "ContractDefinition", - "nodes": [ + "anonymous": false, + "inputs": [ { - "constant": false, - "documentation": { - "id": 3, - "nodeType": "StructuredDocumentation", - "src": "1652:73:0", - "text": " @dev Indicates that the contract has been initialized." - }, - "id": 5, - "mutability": "mutable", - "name": "_initialized", - "nameLocation": "1743:12:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "1730:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1730:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "private" + "indexed": false, + "internalType": "uint256", + "name": "appID", + "type": "uint256" }, { - "constant": false, - "documentation": { - "id": 6, - "nodeType": "StructuredDocumentation", - "src": "1762:91:0", - "text": " @dev Indicates that the contract is in the process of being initialized." - }, - "id": 8, - "mutability": "mutable", - "name": "_initializing", - "nameLocation": "1871:13:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "1858:26:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1858:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "indexed": false, + "internalType": "address", + "name": "appOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "appName", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "appIPFSHash", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "appAddData", + "type": "string" + } + ], + "name": "NewApp", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "appID", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "appOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "appName", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "appIPFSHash", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "appAddData", + "type": "string" + } + ], + "name": "UpdateApp", + "type": "event" + }, + { + "inputs": [], + "name": "amountToPay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "appID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_appID", + "type": "uint256" + } + ], + "name": "getDAppData", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "appID", + "type": "uint256" + }, + { + "internalType": "address", + "name": "appOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "appName", + "type": "string" + }, + { + "internalType": "string", + "name": "appIPFSHash", + "type": "string" + }, + { + "internalType": "string", + "name": "appAddData", + "type": "string" } - }, - "visibility": "private" + ], + "internalType": "struct NotUpgradableStore.App", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_appID", + "type": "uint256" + } + ], + "name": "releaseDApp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" }, { - "body": { - "id": 43, - "nodeType": "Block", - "src": "2012:348:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 15, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2030:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "id": 14, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2047:13:0", - "subExpression": { - "id": 13, - "name": "_initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "2048:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2030:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", - "id": 16, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2062:48:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", - "typeString": "literal_string \"Initializable: contract is already initialized\"" - }, - "value": "Initializable: contract is already initialized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "internalType": "string", + "name": "_ipfsHash", + "type": "string" + }, + { + "internalType": "string", + "name": "_additionalData", + "type": "string" + } + ], + "name": "submitDApp", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_appID", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_ipfsHash", + "type": "string" + }, + { + "internalType": "string", + "name": "_additionalData", + "type": "string" + } + ], + "name": "updateDApp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1185": { + "entryPoint": null, + "id": 1185, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 182, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 205, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 146, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 141, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 156, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1048:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:9", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:9" }, - { - "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", - "typeString": "literal_string \"Initializable: contract is already initialized\"" - } - ], - "id": 11, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2022:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:9" + } + ] } - }, - "id": 17, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2022:89:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + ] }, - "id": 18, - "nodeType": "ExpressionStatement", - "src": "2022:89:0" - }, - { - "assignments": [ - 20 - ], - "declarations": [ + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ { - "constant": false, - "id": 20, - "mutability": "mutable", - "name": "isTopLevelCall", - "nameLocation": "2127:14:0", - "nodeType": "VariableDeclaration", - "scope": 43, - "src": "2122:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2122:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:9", + "type": "" } ], - "id": 23, - "initialValue": { - "id": 22, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2144:14:0", - "subExpression": { - "id": 21, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2145:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2122:36:0" + "src": "7:75:9" }, { - "condition": { - "id": 24, - "name": "isTopLevelCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "2172:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34, - "nodeType": "IfStatement", - "src": "2168:98:0", - "trueBody": { - "id": 33, - "nodeType": "Block", - "src": "2188:78:0", + "body": { + "nodeType": "YulBlock", + "src": "177:28:9", "statements": [ { "expression": { - "id": 27, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 25, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2202:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 26, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2218:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:9", + "type": "", + "value": "0" }, - "value": "true" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:9" }, - "src": "2202:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "nodeType": "YulFunctionCall", + "src": "187:12:9" }, - "id": 28, - "nodeType": "ExpressionStatement", - "src": "2202:20:0" - }, + "nodeType": "YulExpressionStatement", + "src": "187:12:9" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:9", + "statements": [ { "expression": { - "id": 31, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 29, - "name": "_initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "2236:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2251:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:9", + "type": "", + "value": "0" }, - "value": "true" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:9" }, - "src": "2236:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "nodeType": "YulFunctionCall", + "src": "310:12:9" }, - "id": 32, - "nodeType": "ExpressionStatement", - "src": "2236:19:0" + "nodeType": "YulExpressionStatement", + "src": "310:12:9" } ] - } + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:9" }, { - "id": 35, - "nodeType": "PlaceholderStatement", - "src": "2276:1:0" + "body": { + "nodeType": "YulBlock", + "src": "379:32:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:16:9", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "400:5:9" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:9" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:9", + "type": "" + } + ], + "src": "334:77:9" }, { - "condition": { - "id": 36, - "name": "isTopLevelCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "2292:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 42, - "nodeType": "IfStatement", - "src": "2288:66:0", - "trueBody": { - "id": 41, - "nodeType": "Block", - "src": "2308:46:0", + "body": { + "nodeType": "YulBlock", + "src": "460:79:9", "statements": [ { - "expression": { - "id": 39, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 37, - "name": "_initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "2322:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "body": { + "nodeType": "YulBlock", + "src": "517:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "526:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "529:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "519:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "519:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "519:12:9" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 38, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2338:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2322:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + ] }, - "id": 40, - "nodeType": "ExpressionStatement", - "src": "2322:21:0" - } - ] - } - } - ] - }, - "documentation": { - "id": 9, - "nodeType": "StructuredDocumentation", - "src": "1891:93:0", - "text": " @dev Modifier to protect an initializer function from being invoked twice." - }, - "id": 44, - "name": "initializer", - "nameLocation": "1998:11:0", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 10, - "nodeType": "ParameterList", - "parameters": [], - "src": "2009:2:0" - }, - "src": "1989:371:0", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 46, - "src": "1614:748:0", - "usedErrors": [] - } - ], - "src": "98:2265:0" - }, - "id": 0 - }, - "@openzeppelin/contracts/access/AccessControl.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", - "exportedSymbols": { - "AccessControl": [ - 354 - ], - "Context": [ - 449 - ], - "ERC165": [ - 676 - ], - "IAccessControl": [ - 427 - ], - "IERC165": [ - 688 - ], - "Strings": [ - 652 - ] - }, - "id": 355, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 47, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "93:23:1" - }, - { - "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", - "file": "./IAccessControl.sol", - "id": 48, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 355, - "sourceUnit": 428, - "src": "118:30:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "../utils/Context.sol", - "id": 49, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 355, - "sourceUnit": 450, - "src": "149:30:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", - "file": "../utils/Strings.sol", - "id": 50, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 355, - "sourceUnit": 653, - "src": "180:30:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "file": "../utils/introspection/ERC165.sol", - "id": 51, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 355, - "sourceUnit": 677, - "src": "211:43:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 53, - "name": "Context", - "nodeType": "IdentifierPath", - "referencedDeclaration": 449, - "src": "1826:7:1" - }, - "id": 54, - "nodeType": "InheritanceSpecifier", - "src": "1826:7:1" - }, - { - "baseName": { - "id": 55, - "name": "IAccessControl", - "nodeType": "IdentifierPath", - "referencedDeclaration": 427, - "src": "1835:14:1" - }, - "id": 56, - "nodeType": "InheritanceSpecifier", - "src": "1835:14:1" - }, - { - "baseName": { - "id": 57, - "name": "ERC165", - "nodeType": "IdentifierPath", - "referencedDeclaration": 676, - "src": "1851:6:1" - }, - "id": 58, - "nodeType": "InheritanceSpecifier", - "src": "1851:6:1" - } - ], - "canonicalName": "AccessControl", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 52, - "nodeType": "StructuredDocumentation", - "src": "256:1534:1", - "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it." - }, - "fullyImplemented": true, - "id": 354, - "linearizedBaseContracts": [ - 354, - 676, - 688, - 427, - 449 - ], - "name": "AccessControl", - "nameLocation": "1809:13:1", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "AccessControl.RoleData", - "id": 65, - "members": [ - { - "constant": false, - "id": 62, - "mutability": "mutable", - "name": "members", - "nameLocation": "1915:7:1", - "nodeType": "VariableDeclaration", - "scope": 65, - "src": "1890:32:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 61, - "keyType": { - "id": 59, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1890:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "483:5:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "508:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "490:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "490:24:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "480:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "480:35:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "473:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "473:43:9" + }, + "nodeType": "YulIf", + "src": "470:63:9" + } + ] }, - "valueType": { - "id": 60, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1909:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "453:5:9", + "type": "" } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64, - "mutability": "mutable", - "name": "adminRole", - "nameLocation": "1940:9:1", - "nodeType": "VariableDeclaration", - "scope": 65, - "src": "1932:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 63, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1932:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "name": "RoleData", - "nameLocation": "1871:8:1", - "nodeType": "StructDefinition", - "scope": 354, - "src": "1864:92:1", - "visibility": "public" - }, - { - "constant": false, - "id": 70, - "mutability": "mutable", - "name": "_roles", - "nameLocation": "1999:6:1", - "nodeType": "VariableDeclaration", - "scope": 354, - "src": "1962:43:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", - "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" - }, - "typeName": { - "id": 69, - "keyType": { - "id": 66, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1962:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", - "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" - }, - "valueType": { - "id": 68, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 67, - "name": "RoleData", - "nodeType": "IdentifierPath", - "referencedDeclaration": 65, - "src": "1981:8:1" + ], + "src": "417:122:9" }, - "referencedDeclaration": 65, - "src": "1981:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$65_storage_ptr", - "typeString": "struct AccessControl.RoleData" - } - } - }, - "visibility": "private" - }, - { - "constant": true, - "functionSelector": "a217fddf", - "id": 73, - "mutability": "constant", - "name": "DEFAULT_ADMIN_ROLE", - "nameLocation": "2036:18:1", - "nodeType": "VariableDeclaration", - "scope": 354, - "src": "2012:49:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 71, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2012:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "30783030", - "id": 72, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2057:4:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x00" - }, - "visibility": "public" - }, - { - "body": { - "id": 85, - "nodeType": "Block", - "src": "2480:58:1", - "statements": [ { - "expression": { - "arguments": [ + "body": { + "nodeType": "YulBlock", + "src": "608:80:9", + "statements": [ { - "id": 79, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76, - "src": "2501:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "nodeType": "YulAssignment", + "src": "618:22:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "633:6:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "627:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "627:13:9" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "618:5:9" + } + ] }, { - "arguments": [], "expression": { - "argumentTypes": [], - "id": 80, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 439, - "src": "2507:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 81, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2507:12:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:9" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "649:26:9" + }, + "nodeType": "YulFunctionCall", + "src": "649:33:9" }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 78, - "name": "_checkRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "2490:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address) view" + "nodeType": "YulExpressionStatement", + "src": "649:33:9" } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "586:6:9", + "type": "" }, - "id": 82, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2490:30:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + { + "name": "end", + "nodeType": "YulTypedName", + "src": "594:3:9", + "type": "" } - }, - "id": 83, - "nodeType": "ExpressionStatement", - "src": "2490:30:1" - }, - { - "id": 84, - "nodeType": "PlaceholderStatement", - "src": "2530:1:1" - } - ] - }, - "documentation": { - "id": 74, - "nodeType": "StructuredDocumentation", - "src": "2068:375:1", - "text": " @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._" - }, - "id": 86, - "name": "onlyRole", - "nameLocation": "2457:8:1", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 77, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76, - "mutability": "mutable", - "name": "role", - "nameLocation": "2474:4:1", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2466:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 75, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "602:5:9", + "type": "" } - }, - "visibility": "internal" - } - ], - "src": "2465:14:1" - }, - "src": "2448:90:1", - "virtual": false, - "visibility": "internal" - }, - { - "baseFunctions": [ - 675 - ], - "body": { - "id": 107, - "nodeType": "Block", - "src": "2696:111:1", - "statements": [ + ], + "src": "545:143:9" + }, { - "expression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 95, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "2713:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { + "body": { + "nodeType": "YulBlock", + "src": "771:274:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "817:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "819:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "819:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "819:79:9" + } + ] + }, + "condition": { "arguments": [ { - "id": 97, - "name": "IAccessControl", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "2733:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IAccessControl_$427_$", - "typeString": "type(contract IAccessControl)" - } + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "792:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "801:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "788:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "788:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "813:2:9", + "type": "", + "value": "32" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_IAccessControl_$427_$", - "typeString": "type(contract IAccessControl)" - } - ], - "id": 96, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "2728:4:1", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "784:3:9" }, - "id": 98, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2728:20:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControl_$427", - "typeString": "type(contract IAccessControl)" - } + "nodeType": "YulFunctionCall", + "src": "784:32:9" }, - "id": 99, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "interfaceId", - "nodeType": "MemberAccess", - "src": "2728:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } + "nodeType": "YulIf", + "src": "781:119:9" }, - "src": "2713:47:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 103, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "2788:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ + { + "nodeType": "YulBlock", + "src": "910:128:9", + "statements": [ { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "id": 101, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -25, - "src": "2764:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_AccessControl_$354_$", - "typeString": "type(contract super AccessControl)" + "nodeType": "YulVariableDeclaration", + "src": "925:15:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "929:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "954:74:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1000:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1011:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "996:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "996:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1020:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "964:31:9" + }, + "nodeType": "YulFunctionCall", + "src": "964:64:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "954:6:9" + } + ] } - }, - "id": 102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "supportsInterface", - "nodeType": "MemberAccess", - "referencedDeclaration": 675, - "src": "2764:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", - "typeString": "function (bytes4) view returns (bool)" - } - }, - "id": 104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2764:36:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + ] } - }, - "src": "2713:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 94, - "id": 106, - "nodeType": "Return", - "src": "2706:94:1" - } - ] - }, - "documentation": { - "id": 87, - "nodeType": "StructuredDocumentation", - "src": "2544:56:1", - "text": " @dev See {IERC165-supportsInterface}." - }, - "functionSelector": "01ffc9a7", - "id": 108, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "2614:17:1", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 91, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2672:8:1" - }, - "parameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 89, - "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "2639:11:1", - "nodeType": "VariableDeclaration", - "scope": 108, - "src": "2632:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + ] }, - "typeName": { - "id": 88, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2632:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "741:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "752:7:9", + "type": "" } - }, - "visibility": "internal" - } - ], - "src": "2631:20:1" - }, - "returnParameters": { - "id": 94, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 108, - "src": "2690:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 92, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2690:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "764:6:9", + "type": "" } - }, - "visibility": "internal" + ], + "src": "694:351:9" } - ], - "src": "2689:6:1" + ] }, - "scope": 354, - "src": "2605:202:1", - "stateMutability": "view", - "virtual": true, - "visibility": "public" + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 9, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50604051620012b5380380620012b58339818101604052810190620000379190620000cd565b80600281905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060018190555050620000ff565b600080fd5b6000819050919050565b620000a78162000092565b8114620000b357600080fd5b50565b600081519050620000c7816200009c565b92915050565b600060208284031215620000e657620000e56200008d565b5b6000620000f684828501620000b6565b91505092915050565b6111a6806200010f6000396000f3fe6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b14610106578063ab444f2814610131578063e73173a41461015a578063f9a6cbae1461017657610070565b80635cadd4a9146100755780637ba136801461009e578063887e4b86146100c9575b600080fd5b34801561008157600080fd5b5061009c6004803603810190610097919061095c565b6101a1565b005b3480156100aa57600080fd5b506100b3610303565b6040516100c09190610998565b60405180910390f35b3480156100d557600080fd5b506100f060048036038101906100eb919061095c565b610309565b6040516100fd9190610b20565b60405180910390f35b34801561011257600080fd5b5061011b610559565b6040516101289190610b51565b60405180910390f35b34801561013d57600080fd5b5061015860048036038101906101539190610ca1565b61057d565b005b610174600480360381019061016f9190610d5c565b6106db565b005b34801561018257600080fd5b5061018b610824565b6040516101989190610998565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023990610e60565b60405180910390fd5b7f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc3881336004600085815260200190815260200160002060056000868152602001908152602001600020600660008781526020019081526020016000206040516102af959493929190610f76565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6002549081150290604051600060405180830381858888f193505050501580156102ff573d6000803e3d6000fd5b5050565b60025481565b61031161082a565b6040518060a001604052808381526020016003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160046000858152602001908152602001600020805461038f90610eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb90610eaf565b80156104085780601f106103dd57610100808354040283529160200191610408565b820191906000526020600020905b8154815290600101906020018083116103eb57829003601f168201915b5050505050815260200160056000858152602001908152602001600020805461043090610eaf565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90610eaf565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b505050505081526020016006600085815260200190815260200160002080546104d190610eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610eaf565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b50505050508152509050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166003600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461061e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061590610e60565b60405180910390fd5b8260046000868152602001908152602001600020908051906020019061064592919061086f565b508160056000868152602001908152602001600020908051906020019061066d92919061086f565b508060066000868152602001908152602001600020908051906020019061069592919061086f565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd862084338585856040516106cd959493929190611017565b60405180910390a150505050565b600254341461071f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610716906110cb565b60405180910390fd5b3360036000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006001548152602001908152602001600020908051906020019061079c92919061086f565b508160056000600154815260200190815260200160002090805190602001906107c692919061086f565b508060066000600154815260200190815260200160002090805190602001906107f092919061086f565b50426007600060015481526020019081526020016000208190555060018054610819919061111a565b600181905550505050565b60015481565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b82805461087b90610eaf565b90600052602060002090601f01602090048101928261089d57600085556108e4565b82601f106108b657805160ff19168380011785556108e4565b828001600101855582156108e4579182015b828111156108e35782518255916020019190600101906108c8565b5b5090506108f191906108f5565b5090565b5b8082111561090e5760008160009055506001016108f6565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61093981610926565b811461094457600080fd5b50565b60008135905061095681610930565b92915050565b6000602082840312156109725761097161091c565b5b600061098084828501610947565b91505092915050565b61099281610926565b82525050565b60006020820190506109ad6000830184610989565b92915050565b6109bc81610926565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109ed826109c2565b9050919050565b6109fd816109e2565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610a3d578082015181840152602081019050610a22565b83811115610a4c576000848401525b50505050565b6000601f19601f8301169050919050565b6000610a6e82610a03565b610a788185610a0e565b9350610a88818560208601610a1f565b610a9181610a52565b840191505092915050565b600060a083016000830151610ab460008601826109b3565b506020830151610ac760208601826109f4565b5060408301518482036040860152610adf8282610a63565b91505060608301518482036060860152610af98282610a63565b91505060808301518482036080860152610b138282610a63565b9150508091505092915050565b60006020820190508181036000830152610b3a8184610a9c565b905092915050565b610b4b816109e2565b82525050565b6000602082019050610b666000830184610b42565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610bae82610a52565b810181811067ffffffffffffffff82111715610bcd57610bcc610b76565b5b80604052505050565b6000610be0610912565b9050610bec8282610ba5565b919050565b600067ffffffffffffffff821115610c0c57610c0b610b76565b5b610c1582610a52565b9050602081019050919050565b82818337600083830152505050565b6000610c44610c3f84610bf1565b610bd6565b905082815260208101848484011115610c6057610c5f610b71565b5b610c6b848285610c22565b509392505050565b600082601f830112610c8857610c87610b6c565b5b8135610c98848260208601610c31565b91505092915050565b60008060008060808587031215610cbb57610cba61091c565b5b6000610cc987828801610947565b945050602085013567ffffffffffffffff811115610cea57610ce9610921565b5b610cf687828801610c73565b935050604085013567ffffffffffffffff811115610d1757610d16610921565b5b610d2387828801610c73565b925050606085013567ffffffffffffffff811115610d4457610d43610921565b5b610d5087828801610c73565b91505092959194509250565b600080600060608486031215610d7557610d7461091c565b5b600084013567ffffffffffffffff811115610d9357610d92610921565b5b610d9f86828701610c73565b935050602084013567ffffffffffffffff811115610dc057610dbf610921565b5b610dcc86828701610c73565b925050604084013567ffffffffffffffff811115610ded57610dec610921565b5b610df986828701610c73565b9150509250925092565b600082825260208201905092915050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000610e4a601183610e03565b9150610e5582610e14565b602082019050919050565b60006020820190508181036000830152610e7981610e3d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610ec757607f821691505b60208210811415610edb57610eda610e80565b5b50919050565b60008190508160005260206000209050919050565b60008154610f0381610eaf565b610f0d8186610e03565b94506001821660008114610f285760018114610f3a57610f6d565b60ff1983168652602086019350610f6d565b610f4385610ee1565b60005b83811015610f6557815481890152600182019150602081019050610f46565b808801955050505b50505092915050565b600060a082019050610f8b6000830188610989565b610f986020830187610b42565b8181036040830152610faa8186610ef6565b90508181036060830152610fbe8185610ef6565b90508181036080830152610fd28184610ef6565b90509695505050505050565b6000610fe982610a03565b610ff38185610e03565b9350611003818560208601610a1f565b61100c81610a52565b840191505092915050565b600060a08201905061102c6000830188610989565b6110396020830187610b42565b818103604083015261104b8186610fde565b9050818103606083015261105f8185610fde565b905081810360808301526110738184610fde565b90509695505050505050565b7f457468657220666f72206c6f636b757020726571756972656400000000000000600082015250565b60006110b5601983610e03565b91506110c08261107f565b602082019050919050565b600060208201905081810360008301526110e4816110a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061112582610926565b915061113083610926565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611165576111646110eb565b5b82820190509291505056fea26469706673582212205c17795542b2dc53e02fabbc4bfe1bbd5ec1c9f91c380af9fa9fb0f0fc3948c864736f6c63430008090033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x12B5 CODESIZE SUB DUP1 PUSH3 0x12B5 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0xCD JUMP JUMPDEST DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP PUSH3 0xFF JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xA7 DUP2 PUSH3 0x92 JUMP JUMPDEST DUP2 EQ PUSH3 0xB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0xC7 DUP2 PUSH3 0x9C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xE6 JUMPI PUSH3 0xE5 PUSH3 0x8D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0xF6 DUP5 DUP3 DUP6 ADD PUSH3 0xB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11A6 DUP1 PUSH3 0x10F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xAB444F28 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0xE73173A4 EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xF9A6CBAE EQ PUSH2 0x176 JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x5CADD4A9 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x7BA13680 EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0x887E4B86 EQ PUSH2 0xC9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1A1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x998 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEB SWAP2 SWAP1 PUSH2 0x95C JUMP JUMPDEST PUSH2 0x309 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFD SWAP2 SWAP1 PUSH2 0xB20 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x559 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x128 SWAP2 SWAP1 PUSH2 0xB51 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x158 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x153 SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH2 0x57D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x174 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16F SWAP2 SWAP1 PUSH2 0xD5C JUMP JUMPDEST PUSH2 0x6DB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x182 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x824 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x998 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x242 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x239 SWAP1 PUSH2 0xE60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x54362B36D34EFDDA9F90402E88C73FD5B6D780EA5A94052317E4664B31AACC38 DUP2 CALLER PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x2AF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x2 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x311 PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x38F SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3BB SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x408 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x408 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x430 SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x45C SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4A9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x47E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4A9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x48C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x61E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x615 SWAP1 PUSH2 0xE60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x4 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x645 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP2 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x66D SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP1 PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x695 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP PUSH32 0xFD025D83852F29D01B58FD4B19D8CFE0E12AF0EE9F31A7E273EA765CD4DD8620 DUP5 CALLER DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x6CD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1017 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD CALLVALUE EQ PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x716 SWAP1 PUSH2 0x10CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x3 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x4 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x79C SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x7C6 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x7F0 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP TIMESTAMP PUSH1 0x7 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP1 SLOAD PUSH2 0x819 SWAP2 SWAP1 PUSH2 0x111A JUMP JUMPDEST PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x87B SWAP1 PUSH2 0xEAF JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x89D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x8E4 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x8B6 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x8E4 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x8E4 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x8E3 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x8C8 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0x8F5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x90E JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x8F6 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x939 DUP2 PUSH2 0x926 JUMP JUMPDEST DUP2 EQ PUSH2 0x944 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x956 DUP2 PUSH2 0x930 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x972 JUMPI PUSH2 0x971 PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x980 DUP5 DUP3 DUP6 ADD PUSH2 0x947 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x992 DUP2 PUSH2 0x926 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x989 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9BC DUP2 PUSH2 0x926 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9ED DUP3 PUSH2 0x9C2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9FD DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA3D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA22 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xA4C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA6E DUP3 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xA78 DUP2 DUP6 PUSH2 0xA0E JUMP JUMPDEST SWAP4 POP PUSH2 0xA88 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA1F JUMP JUMPDEST PUSH2 0xA91 DUP2 PUSH2 0xA52 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0xAB4 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x9B3 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0xAC7 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x9F4 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xADF DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0xAF9 DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0xB13 DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB3A DUP2 DUP5 PUSH2 0xA9C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB4B DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB66 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB42 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xBAE DUP3 PUSH2 0xA52 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xBCD JUMPI PUSH2 0xBCC PUSH2 0xB76 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBE0 PUSH2 0x912 JUMP JUMPDEST SWAP1 POP PUSH2 0xBEC DUP3 DUP3 PUSH2 0xBA5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC0C JUMPI PUSH2 0xC0B PUSH2 0xB76 JUMP JUMPDEST JUMPDEST PUSH2 0xC15 DUP3 PUSH2 0xA52 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC44 PUSH2 0xC3F DUP5 PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0xBD6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xC60 JUMPI PUSH2 0xC5F PUSH2 0xB71 JUMP JUMPDEST JUMPDEST PUSH2 0xC6B DUP5 DUP3 DUP6 PUSH2 0xC22 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC88 JUMPI PUSH2 0xC87 PUSH2 0xB6C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC98 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xC31 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xCBB JUMPI PUSH2 0xCBA PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP8 DUP3 DUP9 ADD PUSH2 0x947 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCEA JUMPI PUSH2 0xCE9 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xCF6 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD17 JUMPI PUSH2 0xD16 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD23 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD44 JUMPI PUSH2 0xD43 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD50 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD74 PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD93 JUMPI PUSH2 0xD92 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD9F DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC0 JUMPI PUSH2 0xDBF PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xDCC DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDED JUMPI PUSH2 0xDEC PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xDF9 DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F662064617070000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE4A PUSH1 0x11 DUP4 PUSH2 0xE03 JUMP JUMPDEST SWAP2 POP PUSH2 0xE55 DUP3 PUSH2 0xE14 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE79 DUP2 PUSH2 0xE3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xEC7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xEDB JUMPI PUSH2 0xEDA PUSH2 0xE80 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0xF03 DUP2 PUSH2 0xEAF JUMP JUMPDEST PUSH2 0xF0D DUP2 DUP7 PUSH2 0xE03 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0xF28 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0xF3A JUMPI PUSH2 0xF6D JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP PUSH2 0xF6D JUMP JUMPDEST PUSH2 0xF43 DUP6 PUSH2 0xEE1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF65 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0xF8B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x989 JUMP JUMPDEST PUSH2 0xF98 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xB42 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xFAA DUP2 DUP7 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xFBE DUP2 DUP6 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0xFD2 DUP2 DUP5 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFE9 DUP3 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xFF3 DUP2 DUP6 PUSH2 0xE03 JUMP JUMPDEST SWAP4 POP PUSH2 0x1003 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA1F JUMP JUMPDEST PUSH2 0x100C DUP2 PUSH2 0xA52 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x102C PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x989 JUMP JUMPDEST PUSH2 0x1039 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xB42 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x104B DUP2 DUP7 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x105F DUP2 DUP6 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1073 DUP2 DUP5 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x457468657220666F72206C6F636B757020726571756972656400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10B5 PUSH1 0x19 DUP4 PUSH2 0xE03 JUMP JUMPDEST SWAP2 POP PUSH2 0x10C0 DUP3 PUSH2 0x107F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x10E4 DUP2 PUSH2 0x10A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1125 DUP3 PUSH2 0x926 JUMP JUMPDEST SWAP2 POP PUSH2 0x1130 DUP4 PUSH2 0x926 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1165 JUMPI PUSH2 0x1164 PUSH2 0x10EB JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5C OR PUSH26 0x5542B2DC53E02FABBC4BFE1BBD5EC1C9F91C380AF9FA9FB0F0FC CODECOPY BASEFEE 0xC8 PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ", + "sourceMap": "63:2398:8:-:0;;;721:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;777:12;763:11;:26;;;;807:10;799:5;;:18;;;;;;;;;;;;;;;;;;835:1;827:5;:9;;;;721:122;63:2398;;88:117:9;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;63:2398:8:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@amountToPay_1110": { + "entryPoint": 771, + "id": 1110, + "parameterSlots": 0, + "returnSlots": 0 }, - { - "baseFunctions": [ - 394 - ], - "body": { - "id": 126, - "nodeType": "Block", - "src": "2978:53:1", - "statements": [ - { - "expression": { - "baseExpression": { - "expression": { - "baseExpression": { - "id": 119, - "name": "_roles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 70, - "src": "2995:6:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", - "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" - } - }, - "id": 121, - "indexExpression": { - "id": 120, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "3002:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2995:12:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RoleData_$65_storage", - "typeString": "struct AccessControl.RoleData storage ref" - } - }, - "id": 122, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "members", - "nodeType": "MemberAccess", - "referencedDeclaration": 62, - "src": "2995:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 124, - "indexExpression": { - "id": 123, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "3016:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2995:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 118, - "id": 125, - "nodeType": "Return", - "src": "2988:36:1" - } - ] - }, - "documentation": { - "id": 109, - "nodeType": "StructuredDocumentation", - "src": "2813:76:1", - "text": " @dev Returns `true` if `account` has been granted `role`." - }, - "functionSelector": "91d14854", - "id": 127, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hasRole", - "nameLocation": "2903:7:1", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 115, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2954:8:1" - }, - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 111, - "mutability": "mutable", - "name": "role", - "nameLocation": "2919:4:1", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "2911:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 110, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2911:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "mutability": "mutable", - "name": "account", - "nameLocation": "2933:7:1", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "2925:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2925:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2910:31:1" - }, - "returnParameters": { - "id": 118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "2972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 116, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2971:6:1" - }, - "scope": 354, - "src": "2894:137:1", - "stateMutability": "view", - "virtual": false, - "visibility": "public" + "@appID_1108": { + "entryPoint": 2084, + "id": 1108, + "parameterSlots": 0, + "returnSlots": 0 }, - { - "body": { - "id": 169, - "nodeType": "Block", - "src": "3377:419:1", - "statements": [ - { - "condition": { - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3391:23:1", - "subExpression": { - "arguments": [ - { - "id": 136, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "3400:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 137, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "3406:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 135, - "name": "hasRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "3392:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) view returns (bool)" - } - }, - "id": 138, - "isConstant": false, - "isLValue": false, + "@getDAppData_1326": { + "entryPoint": 777, + "id": 1326, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@owner_1106": { + "entryPoint": 1369, + "id": 1106, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@releaseDApp_1366": { + "entryPoint": 417, + "id": 1366, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@submitDApp_1252": { + "entryPoint": 1755, + "id": 1252, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@updateDApp_1301": { + "entryPoint": 1405, + "id": 1301, + "parameterSlots": 4, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 3121, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 3187, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 2375, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr": { + "entryPoint": 3420, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 2396, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr": { + "entryPoint": 3233, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encode_t_address_to_t_address": { + "entryPoint": 2548, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 2882, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr": { + "entryPoint": 2659, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4062, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3830, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3645, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4264, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_struct$_App_$1196_memory_ptr_to_t_struct$_App_$1196_memory_ptr_fromStack": { + "entryPoint": 2716, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 2483, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 2441, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 2897, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3680, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4299, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_App_$1196_memory_ptr__to_t_struct$_App_$1196_memory_ptr__fromStack_reversed": { + "entryPoint": 2848, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 2456, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4119, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3958, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 3030, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 2322, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 3057, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 3809, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2563, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr": { + "entryPoint": 2574, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 3587, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 4378, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2530, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2498, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 2342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory": { + "entryPoint": 3106, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory": { + "entryPoint": 2591, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3759, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 2981, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 4331, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3712, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 2934, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 2924, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 2929, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 2337, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2332, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2642, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5": { + "entryPoint": 3604, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948": { + "entryPoint": 4223, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 2352, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:15882:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:9", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:9" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:9" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:9", + "type": "" + } + ], + "src": "7:75:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:9" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:9" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:32:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:16:9", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "400:5:9" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:9" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:9", + "type": "" + } + ], + "src": "334:77:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "460:79:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "517:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "526:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "529:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "519:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "519:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "519:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "483:5:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "508:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "490:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "490:24:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "480:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "480:35:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "473:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "473:43:9" + }, + "nodeType": "YulIf", + "src": "470:63:9" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "453:5:9", + "type": "" + } + ], + "src": "417:122:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "597:87:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "607:29:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "629:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "616:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "616:20:9" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "607:5:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "672:5:9" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "645:26:9" + }, + "nodeType": "YulFunctionCall", + "src": "645:33:9" + }, + "nodeType": "YulExpressionStatement", + "src": "645:33:9" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "575:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "583:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "591:5:9", + "type": "" + } + ], + "src": "545:139:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:263:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "802:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "804:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "804:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "804:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "777:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "786:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "773:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "773:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "798:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "769:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "769:32:9" + }, + "nodeType": "YulIf", + "src": "766:119:9" + }, + { + "nodeType": "YulBlock", + "src": "895:117:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "910:15:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "924:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "914:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "939:63:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "974:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "985:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "970:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "970:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "994:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "949:20:9" + }, + "nodeType": "YulFunctionCall", + "src": "949:53:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "939:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "726:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "737:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "749:6:9", + "type": "" + } + ], + "src": "690:329:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1090:53:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1107:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1130:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1112:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "1112:24:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1100:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1100:37:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1100:37:9" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1078:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1085:3:9", + "type": "" + } + ], + "src": "1025:118:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1247:124:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1257:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1269:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1280:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1265:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1265:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1257:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1337:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1350:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1361:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1346:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1346:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "1293:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "1293:71:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1293:71:9" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1219:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1231:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1242:4:9", + "type": "" + } + ], + "src": "1149:222:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1432:53:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1449:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1472:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1454:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "1454:24:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1442:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1442:37:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1442:37:9" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1420:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1427:3:9", + "type": "" + } + ], + "src": "1377:108:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1536:81:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1546:65:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1561:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1568:42:9", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1557:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1557:54:9" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1546:7:9" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1518:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1528:7:9", + "type": "" + } + ], + "src": "1491:126:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1668:51:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1678:35:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1707:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1689:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "1689:24:9" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1678:7:9" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1650:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1660:7:9", + "type": "" + } + ], + "src": "1623:96:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1780:53:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1797:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1820:5:9" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1802:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "1802:24:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1790:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1790:37:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1790:37:9" + } + ] + }, + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1768:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1775:3:9", + "type": "" + } + ], + "src": "1725:108:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1898:40:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1909:22:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1925:5:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1919:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "1919:12:9" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1909:6:9" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1881:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1891:6:9", + "type": "" + } + ], + "src": "1839:99:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2030:73:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2047:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2052:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2040:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2040:19:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2040:19:9" + }, + { + "nodeType": "YulAssignment", + "src": "2068:29:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2087:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2092:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2083:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2083:14:9" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "2068:11:9" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2002:3:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2007:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "2018:11:9", + "type": "" + } + ], + "src": "1944:159:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2158:258:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2168:10:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2177:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "2172:1:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2237:63:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2262:3:9" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2267:1:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2258:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2258:11:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2281:3:9" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2286:1:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2277:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2277:11:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2271:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "2271:18:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2251:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2251:39:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2251:39:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2198:1:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2201:6:9" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2195:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "2195:13:9" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2209:19:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2211:15:9", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2220:1:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2223:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2216:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2216:10:9" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2211:1:9" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2191:3:9", + "statements": [] + }, + "src": "2187:113:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2334:76:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2384:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2389:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2380:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2380:16:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2398:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2373:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2373:27:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2373:27:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2315:1:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2318:6:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2312:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "2312:13:9" + }, + "nodeType": "YulIf", + "src": "2309:101:9" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2140:3:9", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2145:3:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2150:6:9", + "type": "" + } + ], + "src": "2109:307:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2470:54:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2480:38:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2498:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2505:2:9", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2494:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2494:14:9" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2514:2:9", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2510:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2510:7:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2490:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2490:28:9" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "2480:6:9" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2453:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "2463:6:9", + "type": "" + } + ], + "src": "2422:102:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2612:262:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2622:53:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2669:5:9" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2636:32:9" + }, + "nodeType": "YulFunctionCall", + "src": "2636:39:9" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2626:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2684:68:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2740:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2745:6:9" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2691:48:9" + }, + "nodeType": "YulFunctionCall", + "src": "2691:61:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2684:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2787:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2794:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2783:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2783:16:9" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2801:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2806:6:9" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "2761:21:9" + }, + "nodeType": "YulFunctionCall", + "src": "2761:52:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2761:52:9" + }, + { + "nodeType": "YulAssignment", + "src": "2822:46:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2833:3:9" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2860:6:9" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2838:21:9" + }, + "nodeType": "YulFunctionCall", + "src": "2838:29:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2829:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2829:39:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2822:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2593:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2600:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2608:3:9", + "type": "" + } + ], + "src": "2530:344:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3066:1167:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3076:26:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3092:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3097:4:9", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3088:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3088:14:9" + }, + "variables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3080:4:9", + "type": "" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3112:165:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3148:43:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3178:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3185:4:9", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3174:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3174:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3168:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "3168:23:9" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "3152:12:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "3238:12:9" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3256:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3261:4:9", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3252:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3252:14:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "3204:33:9" + }, + "nodeType": "YulFunctionCall", + "src": "3204:63:9" + }, + "nodeType": "YulExpressionStatement", + "src": "3204:63:9" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3287:168:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3326:43:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3356:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3363:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3352:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3352:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3346:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "3346:23:9" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "3330:12:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "3416:12:9" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3434:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3439:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3430:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3430:14:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulIdentifier", + "src": "3382:33:9" + }, + "nodeType": "YulFunctionCall", + "src": "3382:63:9" + }, + "nodeType": "YulExpressionStatement", + "src": "3382:63:9" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3465:238:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3503:43:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3533:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3540:4:9", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3529:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3529:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3523:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "3523:23:9" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "3507:12:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3571:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3576:4:9", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3567:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3567:14:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3587:4:9" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3593:3:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3583:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3583:14:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3560:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "3560:38:9" + }, + "nodeType": "YulExpressionStatement", + "src": "3560:38:9" + }, + { + "nodeType": "YulAssignment", + "src": "3611:81:9", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "3673:12:9" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3687:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3619:53:9" + }, + "nodeType": "YulFunctionCall", + "src": "3619:73:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3611:4:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3713:242:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3755:43:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3785:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3792:4:9", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3781:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3781:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3775:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "3775:23:9" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "3759:12:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3823:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3828:4:9", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3819:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3819:14:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3839:4:9" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3845:3:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3835:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3835:14:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3812:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "3812:38:9" + }, + "nodeType": "YulExpressionStatement", + "src": "3812:38:9" + }, + { + "nodeType": "YulAssignment", + "src": "3863:81:9", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "3925:12:9" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3939:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3871:53:9" + }, + "nodeType": "YulFunctionCall", + "src": "3871:73:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3863:4:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3965:241:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4006:43:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4036:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4043:4:9", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4032:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4032:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4026:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "4026:23:9" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "4010:12:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4074:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4079:4:9", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4070:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4070:14:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4090:4:9" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4096:3:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4086:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4086:14:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4063:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "4063:38:9" + }, + "nodeType": "YulExpressionStatement", + "src": "4063:38:9" + }, + { + "nodeType": "YulAssignment", + "src": "4114:81:9", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "4176:12:9" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4190:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4122:53:9" + }, + "nodeType": "YulFunctionCall", + "src": "4122:73:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4114:4:9" + } + ] + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4216:11:9", + "value": { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4223:4:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4216:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_struct$_App_$1196_memory_ptr_to_t_struct$_App_$1196_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3045:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3052:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3061:3:9", + "type": "" + } + ], + "src": "2950:1283:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4379:217:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4389:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4401:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4412:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4397:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4397:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4389:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4436:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4447:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4432:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4432:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4455:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4461:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4451:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4451:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4425:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "4425:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "4425:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "4481:108:9", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4575:6:9" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4584:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_struct$_App_$1196_memory_ptr_to_t_struct$_App_$1196_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4489:85:9" + }, + "nodeType": "YulFunctionCall", + "src": "4489:100:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4481:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_App_$1196_memory_ptr__to_t_struct$_App_$1196_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4351:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4363:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4374:4:9", + "type": "" + } + ], + "src": "4239:357:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4667:53:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4684:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4707:5:9" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "4689:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "4689:24:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4677:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "4677:37:9" + }, + "nodeType": "YulExpressionStatement", + "src": "4677:37:9" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4655:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4662:3:9", + "type": "" + } + ], + "src": "4602:118:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4824:124:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4834:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4846:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4857:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4842:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4842:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4834:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4914:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4927:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4938:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4923:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4923:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "4870:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "4870:71:9" + }, + "nodeType": "YulExpressionStatement", + "src": "4870:71:9" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4796:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4808:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4819:4:9", + "type": "" + } + ], + "src": "4726:222:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5043:28:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5060:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5063:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5053:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5053:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5053:12:9" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "4954:117:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5166:28:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5183:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5186:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5176:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5176:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5176:12:9" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "5077:117:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5228:152:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5245:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5248:77:9", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5238:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5238:88:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5238:88:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5342:1:9", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5345:4:9", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5335:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5335:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5335:15:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5366:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5369:4:9", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5359:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5359:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5359:15:9" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "5200:180:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5429:238:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5439:58:9", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5461:6:9" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "5491:4:9" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "5469:21:9" + }, + "nodeType": "YulFunctionCall", + "src": "5469:27:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5457:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5457:40:9" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "5443:10:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5608:22:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "5610:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "5610:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5610:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "5551:10:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5563:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5548:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "5548:34:9" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "5587:10:9" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5599:6:9" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5584:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "5584:22:9" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "5545:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "5545:62:9" + }, + "nodeType": "YulIf", + "src": "5542:88:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5646:2:9", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "5650:10:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5639:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5639:22:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5639:22:9" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "5415:6:9", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "5423:4:9", + "type": "" + } + ], + "src": "5386:281:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5714:88:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5724:30:9", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "5734:18:9" + }, + "nodeType": "YulFunctionCall", + "src": "5734:20:9" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5724:6:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5783:6:9" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "5791:4:9" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "5763:19:9" + }, + "nodeType": "YulFunctionCall", + "src": "5763:33:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5763:33:9" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "5698:4:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "5707:6:9", + "type": "" + } + ], + "src": "5673:129:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5875:241:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5980:22:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "5982:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "5982:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5982:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5952:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5960:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5949:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "5949:30:9" + }, + "nodeType": "YulIf", + "src": "5946:56:9" + }, + { + "nodeType": "YulAssignment", + "src": "6012:37:9", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6042:6:9" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "6020:21:9" + }, + "nodeType": "YulFunctionCall", + "src": "6020:29:9" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "6012:4:9" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6086:23:9", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "6098:4:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6104:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6094:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6094:15:9" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "6086:4:9" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5859:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "5870:4:9", + "type": "" + } + ], + "src": "5808:308:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6173:103:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "6196:3:9" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "6201:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6206:6:9" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "6183:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "6183:30:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6183:30:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "6254:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6259:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6250:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6250:16:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6268:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6243:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "6243:27:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6243:27:9" + } + ] + }, + "name": "copy_calldata_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "6155:3:9", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "6160:3:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6165:6:9", + "type": "" + } + ], + "src": "6122:154:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6366:328:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6376:75:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6443:6:9" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6401:41:9" + }, + "nodeType": "YulFunctionCall", + "src": "6401:49:9" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "6385:15:9" + }, + "nodeType": "YulFunctionCall", + "src": "6385:66:9" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6376:5:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6467:5:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6474:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6460:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "6460:21:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6460:21:9" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6490:27:9", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6505:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6512:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6501:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6501:16:9" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "6494:3:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6555:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "6557:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "6557:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6557:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "6536:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6541:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6532:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6532:16:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6550:3:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6529:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "6529:25:9" + }, + "nodeType": "YulIf", + "src": "6526:112:9" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "6671:3:9" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "6676:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6681:6:9" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "6647:23:9" + }, + "nodeType": "YulFunctionCall", + "src": "6647:41:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6647:41:9" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "6339:3:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6344:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6352:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "6360:5:9", + "type": "" + } + ], + "src": "6282:412:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6776:278:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6825:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "6827:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "6827:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6827:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6804:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6812:4:9", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6800:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6800:17:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6819:3:9" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6796:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6796:27:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6789:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "6789:35:9" + }, + "nodeType": "YulIf", + "src": "6786:122:9" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6917:34:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6944:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6931:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "6931:20:9" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6921:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6960:88:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7021:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7029:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7017:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7017:17:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7036:6:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7044:3:9" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6969:47:9" + }, + "nodeType": "YulFunctionCall", + "src": "6969:79:9" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6960:5:9" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6754:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6762:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "6770:5:9", + "type": "" + } + ], + "src": "6714:340:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7207:1158:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7254:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7256:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "7256:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "7256:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7228:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7237:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7224:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7224:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7249:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7220:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7220:33:9" + }, + "nodeType": "YulIf", + "src": "7217:120:9" + }, + { + "nodeType": "YulBlock", + "src": "7347:117:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7362:15:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7376:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7366:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7391:63:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7426:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7437:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7422:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7422:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7446:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7401:20:9" + }, + "nodeType": "YulFunctionCall", + "src": "7401:53:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7391:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7474:288:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7489:46:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7520:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7531:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7516:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7516:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7503:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "7503:32:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7493:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7582:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "7584:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "7584:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "7584:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7554:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7562:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7551:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "7551:30:9" + }, + "nodeType": "YulIf", + "src": "7548:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "7679:73:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7724:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7735:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7720:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7720:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7744:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7689:30:9" + }, + "nodeType": "YulFunctionCall", + "src": "7689:63:9" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7679:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7772:288:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7787:46:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7818:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7829:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7814:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7814:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7801:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "7801:32:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7791:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7880:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "7882:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "7882:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "7882:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7852:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7860:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7849:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "7849:30:9" + }, + "nodeType": "YulIf", + "src": "7846:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "7977:73:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8022:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8033:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8018:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8018:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8042:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7987:30:9" + }, + "nodeType": "YulFunctionCall", + "src": "7987:63:9" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7977:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8070:288:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8085:46:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8116:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8127:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8112:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8112:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8099:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "8099:32:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8089:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8178:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "8180:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "8180:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "8180:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8150:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8158:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8147:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "8147:30:9" + }, + "nodeType": "YulIf", + "src": "8144:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "8275:73:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8320:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8331:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8316:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8316:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8340:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8285:30:9" + }, + "nodeType": "YulFunctionCall", + "src": "8285:63:9" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "8275:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7153:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7164:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7176:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7184:6:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "7192:6:9", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "7200:6:9", + "type": "" + } + ], + "src": "7060:1305:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8501:1029:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8547:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8549:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "8549:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "8549:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8522:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8531:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8518:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8518:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8543:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8514:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8514:32:9" + }, + "nodeType": "YulIf", + "src": "8511:119:9" + }, + { + "nodeType": "YulBlock", + "src": "8640:287:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8655:45:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8686:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8697:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8682:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8682:17:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8669:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "8669:31:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8659:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8747:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "8749:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "8749:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "8749:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8719:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8727:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8716:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "8716:30:9" + }, + "nodeType": "YulIf", + "src": "8713:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "8844:73:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8889:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8900:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8885:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8885:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8909:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8854:30:9" + }, + "nodeType": "YulFunctionCall", + "src": "8854:63:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8844:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8937:288:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8952:46:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8983:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8994:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8979:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8979:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8966:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "8966:32:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8956:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9045:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9047:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "9047:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "9047:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9017:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9025:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9014:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "9014:30:9" + }, + "nodeType": "YulIf", + "src": "9011:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "9142:73:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9187:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9198:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9183:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9183:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9207:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "9152:30:9" + }, + "nodeType": "YulFunctionCall", + "src": "9152:63:9" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9142:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9235:288:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9250:46:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9281:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9292:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9277:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9277:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9264:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "9264:32:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9254:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9343:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9345:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "9345:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "9345:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9315:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9323:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9312:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "9312:30:9" + }, + "nodeType": "YulIf", + "src": "9309:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "9440:73:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9485:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9496:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9481:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9481:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9505:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "9450:30:9" + }, + "nodeType": "YulFunctionCall", + "src": "9450:63:9" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9440:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8455:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8466:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8478:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8486:6:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8494:6:9", + "type": "" + } + ], + "src": "8371:1159:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9632:73:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9649:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "9654:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9642:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "9642:19:9" + }, + "nodeType": "YulExpressionStatement", + "src": "9642:19:9" + }, + { + "nodeType": "YulAssignment", + "src": "9670:29:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9689:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9694:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9685:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9685:14:9" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "9670:11:9" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9604:3:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "9609:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "9620:11:9", + "type": "" + } + ], + "src": "9536:169:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9817:61:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9839:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9847:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9835:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9835:14:9" + }, + { + "hexValue": "4e6f74206f776e6572206f662064617070", + "kind": "string", + "nodeType": "YulLiteral", + "src": "9851:19:9", + "type": "", + "value": "Not owner of dapp" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9828:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "9828:43:9" + }, + "nodeType": "YulExpressionStatement", + "src": "9828:43:9" + } + ] + }, + "name": "store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9809:6:9", + "type": "" + } + ], + "src": "9711:167:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10030:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10040:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10106:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10111:2:9", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10047:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "10047:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10040:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10212:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", + "nodeType": "YulIdentifier", + "src": "10123:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "10123:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "10123:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "10225:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10236:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10241:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10232:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10232:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10225:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10018:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10026:3:9", + "type": "" + } + ], + "src": "9884:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10427:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10437:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10449:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10460:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10445:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10445:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10437:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10484:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10495:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10480:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10480:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10503:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10509:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10499:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10499:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10473:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "10473:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "10473:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "10529:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10663:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10537:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "10537:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10529:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10407:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10422:4:9", + "type": "" + } + ], + "src": "10256:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10709:152:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10726:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10729:77:9", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10719:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "10719:88:9" + }, + "nodeType": "YulExpressionStatement", + "src": "10719:88:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10823:1:9", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10826:4:9", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10816:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "10816:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "10816:15:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10847:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10850:4:9", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10840:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "10840:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "10840:15:9" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "10681:180:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10918:269:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10928:22:9", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "10942:4:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10948:1:9", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "10938:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10938:12:9" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10928:6:9" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "10959:38:9", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "10989:4:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10995:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10985:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10985:12:9" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "10963:18:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11036:51:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11050:27:9", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11064:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11072:4:9", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "11060:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "11060:17:9" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11050:6:9" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "11016:18:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11009:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "11009:26:9" + }, + "nodeType": "YulIf", + "src": "11006:81:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11139:42:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "11153:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "11153:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "11153:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "11103:18:9" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11126:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11134:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "11123:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "11123:14:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11100:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "11100:38:9" + }, + "nodeType": "YulIf", + "src": "11097:84:9" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "10902:4:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10911:6:9", + "type": "" + } + ], + "src": "10867:320:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11247:87:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11257:11:9", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "11265:3:9" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "11257:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11285:1:9", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "11288:3:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11278:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "11278:14:9" + }, + "nodeType": "YulExpressionStatement", + "src": "11278:14:9" + }, + { + "nodeType": "YulAssignment", + "src": "11301:26:9", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11319:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11322:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "11309:9:9" + }, + "nodeType": "YulFunctionCall", + "src": "11309:18:9" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "11301:4:9" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "11234:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "11242:4:9", + "type": "" + } + ], + "src": "11193:141:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11453:713:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11463:29:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11486:5:9" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "11480:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "11480:12:9" + }, + "variables": [ + { + "name": "slotValue", + "nodeType": "YulTypedName", + "src": "11467:9:9", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "11501:50:9", + "value": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "11541:9:9" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "11515:25:9" + }, + "nodeType": "YulFunctionCall", + "src": "11515:36:9" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "11505:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11560:78:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11626:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11631:6:9" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11567:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "11567:71:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11560:3:9" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11687:128:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11740:3:9" + }, + { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "11749:9:9" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11764:4:9", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "11760:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "11760:9:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "11745:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "11745:25:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11733:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "11733:38:9" + }, + "nodeType": "YulExpressionStatement", + "src": "11733:38:9" + }, + { + "nodeType": "YulAssignment", + "src": "11784:21:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11795:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11800:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11791:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "11791:14:9" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "11784:3:9" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "11680:135:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11685:1:9", + "type": "", + "value": "0" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11831:329:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11876:53:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11923:5:9" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "11891:31:9" + }, + "nodeType": "YulFunctionCall", + "src": "11891:38:9" + }, + "variables": [ + { + "name": "dataPos", + "nodeType": "YulTypedName", + "src": "11880:7:9", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "11942:10:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11951:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "11946:1:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12009:110:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12038:3:9" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "12043:1:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12034:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12034:11:9" + }, + { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "12053:7:9" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "12047:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "12047:14:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12027:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "12027:35:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12027:35:9" + }, + { + "nodeType": "YulAssignment", + "src": "12079:26:9", + "value": { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "12094:7:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12103:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12090:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12090:15:9" + }, + "variableNames": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "12079:7:9" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "11976:1:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11979:6:9" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "11973:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "11973:13:9" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "11987:21:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11989:17:9", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "11998:1:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12001:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11994:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "11994:12:9" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "11989:1:9" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "11969:3:9", + "statements": [] + }, + "src": "11965:154:9" + }, + { + "nodeType": "YulAssignment", + "src": "12132:18:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12143:3:9" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "12148:1:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12139:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12139:11:9" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "12132:3:9" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "11824:336:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11829:1:9", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "11658:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11669:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "11654:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "11654:17:9" + }, + "nodeType": "YulSwitch", + "src": "11647:513:9" + } + ] + }, + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11434:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11441:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "11449:3:9", + "type": "" + } + ], + "src": "11364:802:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12433:658:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12443:27:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12455:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12466:3:9", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12451:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12451:19:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12443:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12524:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12537:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12548:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12533:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12533:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "12480:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "12480:71:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12480:71:9" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12605:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12618:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12629:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12614:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12614:18:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "12561:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "12561:72:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12561:72:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12654:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12665:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12650:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12650:18:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12674:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12680:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12670:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12670:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12643:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "12643:48:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12643:48:9" + }, + { + "nodeType": "YulAssignment", + "src": "12700:83:9", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "12769:6:9" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12778:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12708:60:9" + }, + "nodeType": "YulFunctionCall", + "src": "12708:75:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12700:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12804:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12815:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12800:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12800:18:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12824:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12830:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12820:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12820:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12793:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "12793:48:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12793:48:9" + }, + { + "nodeType": "YulAssignment", + "src": "12850:83:9", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "12919:6:9" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12928:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12858:60:9" + }, + "nodeType": "YulFunctionCall", + "src": "12858:75:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12850:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12954:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12965:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12950:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12950:19:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12975:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12981:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12971:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12971:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12943:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "12943:49:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12943:49:9" + }, + { + "nodeType": "YulAssignment", + "src": "13001:83:9", + "value": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "13070:6:9" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13079:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13009:60:9" + }, + "nodeType": "YulFunctionCall", + "src": "13009:75:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13001:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12373:9:9", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "12385:6:9", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "12393:6:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "12401:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12409:6:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12417:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12428:4:9", + "type": "" + } + ], + "src": "12172:919:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13189:272:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13199:53:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13246:5:9" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "13213:32:9" + }, + "nodeType": "YulFunctionCall", + "src": "13213:39:9" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13203:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13261:78:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13327:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13332:6:9" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13268:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "13268:71:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13261:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13374:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13381:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13370:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13370:16:9" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13388:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13393:6:9" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "13348:21:9" + }, + "nodeType": "YulFunctionCall", + "src": "13348:52:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13348:52:9" + }, + { + "nodeType": "YulAssignment", + "src": "13409:46:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13420:3:9" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13447:6:9" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "13425:21:9" + }, + "nodeType": "YulFunctionCall", + "src": "13425:29:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13416:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13416:39:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13409:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "13170:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13177:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13185:3:9", + "type": "" + } + ], + "src": "13097:364:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13737:667:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13747:27:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13759:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13770:3:9", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13755:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13755:19:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13747:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13828:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13841:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13852:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13837:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13837:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "13784:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "13784:71:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13784:71:9" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13909:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13922:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13933:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13918:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13918:18:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "13865:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "13865:72:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13865:72:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13958:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13969:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13954:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13954:18:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13978:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13984:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13974:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13974:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13947:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "13947:48:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13947:48:9" + }, + { + "nodeType": "YulAssignment", + "src": "14004:86:9", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "14076:6:9" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14085:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14012:63:9" + }, + "nodeType": "YulFunctionCall", + "src": "14012:78:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14004:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14111:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14122:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14107:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14107:18:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14131:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14137:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14127:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14127:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14100:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "14100:48:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14100:48:9" + }, + { + "nodeType": "YulAssignment", + "src": "14157:86:9", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "14229:6:9" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14238:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14165:63:9" + }, + "nodeType": "YulFunctionCall", + "src": "14165:78:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14157:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14264:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14275:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14260:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14260:19:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14285:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14291:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14281:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14281:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14253:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "14253:49:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14253:49:9" + }, + { + "nodeType": "YulAssignment", + "src": "14311:86:9", + "value": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "14383:6:9" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14392:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14319:63:9" + }, + "nodeType": "YulFunctionCall", + "src": "14319:78:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14311:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13677:9:9", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "13689:6:9", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "13697:6:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "13705:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13713:6:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13721:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13732:4:9", + "type": "" + } + ], + "src": "13467:937:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14516:69:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14538:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14546:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14534:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14534:14:9" + }, + { + "hexValue": "457468657220666f72206c6f636b7570207265717569726564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14550:27:9", + "type": "", + "value": "Ether for lockup required" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14527:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "14527:51:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14527:51:9" + } + ] + }, + "name": "store_literal_in_memory_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14508:6:9", + "type": "" + } + ], + "src": "14410:175:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14737:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14747:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14813:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14818:2:9", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14754:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "14754:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14747:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14919:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948", + "nodeType": "YulIdentifier", + "src": "14830:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "14830:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14830:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "14932:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14943:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14948:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14939:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14939:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14932:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14725:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14733:3:9", + "type": "" + } + ], + "src": "14591:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15134:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15144:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15156:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15167:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15152:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15152:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15144:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15191:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15202:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15187:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15187:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15210:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15216:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15206:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15206:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15180:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "15180:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "15180:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "15236:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15370:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15244:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "15244:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15236:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15114:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15129:4:9", + "type": "" + } + ], + "src": "14963:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15416:152:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15433:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15436:77:9", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15426:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "15426:88:9" + }, + "nodeType": "YulExpressionStatement", + "src": "15426:88:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15530:1:9", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15533:4:9", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15523:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "15523:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "15523:15:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15554:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15557:4:9", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15547:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "15547:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "15547:15:9" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "15388:180:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15618:261:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15628:25:9", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15651:1:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15633:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "15633:20:9" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15628:1:9" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15662:25:9", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15685:1:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15667:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "15667:20:9" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15662:1:9" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15825:22:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15827:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "15827:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "15827:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15746:1:9" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15753:66:9", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15821:1:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15749:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15749:74:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15743:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "15743:81:9" + }, + "nodeType": "YulIf", + "src": "15740:107:9" + }, + { + "nodeType": "YulAssignment", + "src": "15857:16:9", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15868:1:9" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15871:1:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15864:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15864:9:9" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15857:3:9" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "15605:1:9", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "15608:1:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "15614:3:9", + "type": "" + } + ], + "src": "15574:305:9" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct NotUpgradableStore.App -> struct NotUpgradableStore.App\n function abi_encode_t_struct$_App_$1196_memory_ptr_to_t_struct$_App_$1196_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0xa0)\n\n {\n // appID\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // appOwner\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // appName\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appIPFSHash\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // appAddData\n\n let memberValue0 := mload(add(value, 0x80))\n\n mstore(add(pos, 0x80), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_App_$1196_memory_ptr__to_t_struct$_App_$1196_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_App_$1196_memory_ptr_to_t_struct$_App_$1196_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner of dapp\")\n\n }\n\n function abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, 0x20)\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_address_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value4, tail)\n\n }\n\n function store_literal_in_memory_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948(memPtr) {\n\n mstore(add(memPtr, 0), \"Ether for lockup required\")\n\n }\n\n function abi_encode_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n}\n", + "id": 9, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b14610106578063ab444f2814610131578063e73173a41461015a578063f9a6cbae1461017657610070565b80635cadd4a9146100755780637ba136801461009e578063887e4b86146100c9575b600080fd5b34801561008157600080fd5b5061009c6004803603810190610097919061095c565b6101a1565b005b3480156100aa57600080fd5b506100b3610303565b6040516100c09190610998565b60405180910390f35b3480156100d557600080fd5b506100f060048036038101906100eb919061095c565b610309565b6040516100fd9190610b20565b60405180910390f35b34801561011257600080fd5b5061011b610559565b6040516101289190610b51565b60405180910390f35b34801561013d57600080fd5b5061015860048036038101906101539190610ca1565b61057d565b005b610174600480360381019061016f9190610d5c565b6106db565b005b34801561018257600080fd5b5061018b610824565b6040516101989190610998565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023990610e60565b60405180910390fd5b7f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc3881336004600085815260200190815260200160002060056000868152602001908152602001600020600660008781526020019081526020016000206040516102af959493929190610f76565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6002549081150290604051600060405180830381858888f193505050501580156102ff573d6000803e3d6000fd5b5050565b60025481565b61031161082a565b6040518060a001604052808381526020016003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160046000858152602001908152602001600020805461038f90610eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb90610eaf565b80156104085780601f106103dd57610100808354040283529160200191610408565b820191906000526020600020905b8154815290600101906020018083116103eb57829003601f168201915b5050505050815260200160056000858152602001908152602001600020805461043090610eaf565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90610eaf565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b505050505081526020016006600085815260200190815260200160002080546104d190610eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610eaf565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b50505050508152509050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166003600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461061e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061590610e60565b60405180910390fd5b8260046000868152602001908152602001600020908051906020019061064592919061086f565b508160056000868152602001908152602001600020908051906020019061066d92919061086f565b508060066000868152602001908152602001600020908051906020019061069592919061086f565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd862084338585856040516106cd959493929190611017565b60405180910390a150505050565b600254341461071f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610716906110cb565b60405180910390fd5b3360036000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006001548152602001908152602001600020908051906020019061079c92919061086f565b508160056000600154815260200190815260200160002090805190602001906107c692919061086f565b508060066000600154815260200190815260200160002090805190602001906107f092919061086f565b50426007600060015481526020019081526020016000208190555060018054610819919061111a565b600181905550505050565b60015481565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b82805461087b90610eaf565b90600052602060002090601f01602090048101928261089d57600085556108e4565b82601f106108b657805160ff19168380011785556108e4565b828001600101855582156108e4579182015b828111156108e35782518255916020019190600101906108c8565b5b5090506108f191906108f5565b5090565b5b8082111561090e5760008160009055506001016108f6565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61093981610926565b811461094457600080fd5b50565b60008135905061095681610930565b92915050565b6000602082840312156109725761097161091c565b5b600061098084828501610947565b91505092915050565b61099281610926565b82525050565b60006020820190506109ad6000830184610989565b92915050565b6109bc81610926565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109ed826109c2565b9050919050565b6109fd816109e2565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610a3d578082015181840152602081019050610a22565b83811115610a4c576000848401525b50505050565b6000601f19601f8301169050919050565b6000610a6e82610a03565b610a788185610a0e565b9350610a88818560208601610a1f565b610a9181610a52565b840191505092915050565b600060a083016000830151610ab460008601826109b3565b506020830151610ac760208601826109f4565b5060408301518482036040860152610adf8282610a63565b91505060608301518482036060860152610af98282610a63565b91505060808301518482036080860152610b138282610a63565b9150508091505092915050565b60006020820190508181036000830152610b3a8184610a9c565b905092915050565b610b4b816109e2565b82525050565b6000602082019050610b666000830184610b42565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610bae82610a52565b810181811067ffffffffffffffff82111715610bcd57610bcc610b76565b5b80604052505050565b6000610be0610912565b9050610bec8282610ba5565b919050565b600067ffffffffffffffff821115610c0c57610c0b610b76565b5b610c1582610a52565b9050602081019050919050565b82818337600083830152505050565b6000610c44610c3f84610bf1565b610bd6565b905082815260208101848484011115610c6057610c5f610b71565b5b610c6b848285610c22565b509392505050565b600082601f830112610c8857610c87610b6c565b5b8135610c98848260208601610c31565b91505092915050565b60008060008060808587031215610cbb57610cba61091c565b5b6000610cc987828801610947565b945050602085013567ffffffffffffffff811115610cea57610ce9610921565b5b610cf687828801610c73565b935050604085013567ffffffffffffffff811115610d1757610d16610921565b5b610d2387828801610c73565b925050606085013567ffffffffffffffff811115610d4457610d43610921565b5b610d5087828801610c73565b91505092959194509250565b600080600060608486031215610d7557610d7461091c565b5b600084013567ffffffffffffffff811115610d9357610d92610921565b5b610d9f86828701610c73565b935050602084013567ffffffffffffffff811115610dc057610dbf610921565b5b610dcc86828701610c73565b925050604084013567ffffffffffffffff811115610ded57610dec610921565b5b610df986828701610c73565b9150509250925092565b600082825260208201905092915050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000610e4a601183610e03565b9150610e5582610e14565b602082019050919050565b60006020820190508181036000830152610e7981610e3d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610ec757607f821691505b60208210811415610edb57610eda610e80565b5b50919050565b60008190508160005260206000209050919050565b60008154610f0381610eaf565b610f0d8186610e03565b94506001821660008114610f285760018114610f3a57610f6d565b60ff1983168652602086019350610f6d565b610f4385610ee1565b60005b83811015610f6557815481890152600182019150602081019050610f46565b808801955050505b50505092915050565b600060a082019050610f8b6000830188610989565b610f986020830187610b42565b8181036040830152610faa8186610ef6565b90508181036060830152610fbe8185610ef6565b90508181036080830152610fd28184610ef6565b90509695505050505050565b6000610fe982610a03565b610ff38185610e03565b9350611003818560208601610a1f565b61100c81610a52565b840191505092915050565b600060a08201905061102c6000830188610989565b6110396020830187610b42565b818103604083015261104b8186610fde565b9050818103606083015261105f8185610fde565b905081810360808301526110738184610fde565b90509695505050505050565b7f457468657220666f72206c6f636b757020726571756972656400000000000000600082015250565b60006110b5601983610e03565b91506110c08261107f565b602082019050919050565b600060208201905081810360008301526110e4816110a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061112582610926565b915061113083610926565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611165576111646110eb565b5b82820190509291505056fea26469706673582212205c17795542b2dc53e02fabbc4bfe1bbd5ec1c9f91c380af9fa9fb0f0fc3948c864736f6c63430008090033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xAB444F28 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0xE73173A4 EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xF9A6CBAE EQ PUSH2 0x176 JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x5CADD4A9 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x7BA13680 EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0x887E4B86 EQ PUSH2 0xC9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1A1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x998 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEB SWAP2 SWAP1 PUSH2 0x95C JUMP JUMPDEST PUSH2 0x309 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFD SWAP2 SWAP1 PUSH2 0xB20 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x559 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x128 SWAP2 SWAP1 PUSH2 0xB51 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x158 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x153 SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH2 0x57D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x174 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16F SWAP2 SWAP1 PUSH2 0xD5C JUMP JUMPDEST PUSH2 0x6DB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x182 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x824 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x998 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x242 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x239 SWAP1 PUSH2 0xE60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x54362B36D34EFDDA9F90402E88C73FD5B6D780EA5A94052317E4664B31AACC38 DUP2 CALLER PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x6 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x2AF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x2 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x311 PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x38F SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3BB SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x408 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x408 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x430 SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x45C SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4A9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x47E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4A9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x48C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xEAF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x61E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x615 SWAP1 PUSH2 0xE60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x4 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x645 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP2 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x66D SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP1 PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x695 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP PUSH32 0xFD025D83852F29D01B58FD4B19D8CFE0E12AF0EE9F31A7E273EA765CD4DD8620 DUP5 CALLER DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x6CD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1017 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD CALLVALUE EQ PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x716 SWAP1 PUSH2 0x10CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x3 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x4 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x79C SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x7C6 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x7F0 SWAP3 SWAP2 SWAP1 PUSH2 0x86F JUMP JUMPDEST POP TIMESTAMP PUSH1 0x7 PUSH1 0x0 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP1 SLOAD PUSH2 0x819 SWAP2 SWAP1 PUSH2 0x111A JUMP JUMPDEST PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x87B SWAP1 PUSH2 0xEAF JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x89D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x8E4 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x8B6 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x8E4 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x8E4 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x8E3 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x8C8 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0x8F5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x90E JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x8F6 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x939 DUP2 PUSH2 0x926 JUMP JUMPDEST DUP2 EQ PUSH2 0x944 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x956 DUP2 PUSH2 0x930 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x972 JUMPI PUSH2 0x971 PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x980 DUP5 DUP3 DUP6 ADD PUSH2 0x947 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x992 DUP2 PUSH2 0x926 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x989 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9BC DUP2 PUSH2 0x926 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9ED DUP3 PUSH2 0x9C2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9FD DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA3D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA22 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xA4C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA6E DUP3 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xA78 DUP2 DUP6 PUSH2 0xA0E JUMP JUMPDEST SWAP4 POP PUSH2 0xA88 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA1F JUMP JUMPDEST PUSH2 0xA91 DUP2 PUSH2 0xA52 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0xAB4 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x9B3 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0xAC7 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x9F4 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xADF DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0xAF9 DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0xB13 DUP3 DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB3A DUP2 DUP5 PUSH2 0xA9C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB4B DUP2 PUSH2 0x9E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB66 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB42 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xBAE DUP3 PUSH2 0xA52 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xBCD JUMPI PUSH2 0xBCC PUSH2 0xB76 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBE0 PUSH2 0x912 JUMP JUMPDEST SWAP1 POP PUSH2 0xBEC DUP3 DUP3 PUSH2 0xBA5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC0C JUMPI PUSH2 0xC0B PUSH2 0xB76 JUMP JUMPDEST JUMPDEST PUSH2 0xC15 DUP3 PUSH2 0xA52 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC44 PUSH2 0xC3F DUP5 PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0xBD6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xC60 JUMPI PUSH2 0xC5F PUSH2 0xB71 JUMP JUMPDEST JUMPDEST PUSH2 0xC6B DUP5 DUP3 DUP6 PUSH2 0xC22 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC88 JUMPI PUSH2 0xC87 PUSH2 0xB6C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC98 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xC31 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xCBB JUMPI PUSH2 0xCBA PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP8 DUP3 DUP9 ADD PUSH2 0x947 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCEA JUMPI PUSH2 0xCE9 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xCF6 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD17 JUMPI PUSH2 0xD16 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD23 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD44 JUMPI PUSH2 0xD43 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD50 DUP8 DUP3 DUP9 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD74 PUSH2 0x91C JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD93 JUMPI PUSH2 0xD92 PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xD9F DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC0 JUMPI PUSH2 0xDBF PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xDCC DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDED JUMPI PUSH2 0xDEC PUSH2 0x921 JUMP JUMPDEST JUMPDEST PUSH2 0xDF9 DUP7 DUP3 DUP8 ADD PUSH2 0xC73 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F662064617070000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE4A PUSH1 0x11 DUP4 PUSH2 0xE03 JUMP JUMPDEST SWAP2 POP PUSH2 0xE55 DUP3 PUSH2 0xE14 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE79 DUP2 PUSH2 0xE3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xEC7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xEDB JUMPI PUSH2 0xEDA PUSH2 0xE80 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0xF03 DUP2 PUSH2 0xEAF JUMP JUMPDEST PUSH2 0xF0D DUP2 DUP7 PUSH2 0xE03 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0xF28 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0xF3A JUMPI PUSH2 0xF6D JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP PUSH2 0xF6D JUMP JUMPDEST PUSH2 0xF43 DUP6 PUSH2 0xEE1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF65 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0xF8B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x989 JUMP JUMPDEST PUSH2 0xF98 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xB42 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xFAA DUP2 DUP7 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xFBE DUP2 DUP6 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0xFD2 DUP2 DUP5 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFE9 DUP3 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xFF3 DUP2 DUP6 PUSH2 0xE03 JUMP JUMPDEST SWAP4 POP PUSH2 0x1003 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA1F JUMP JUMPDEST PUSH2 0x100C DUP2 PUSH2 0xA52 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x102C PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x989 JUMP JUMPDEST PUSH2 0x1039 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xB42 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x104B DUP2 DUP7 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x105F DUP2 DUP6 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1073 DUP2 DUP5 PUSH2 0xFDE JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x457468657220666F72206C6F636B757020726571756972656400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10B5 PUSH1 0x19 DUP4 PUSH2 0xE03 JUMP JUMPDEST SWAP2 POP PUSH2 0x10C0 DUP3 PUSH2 0x107F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x10E4 DUP2 PUSH2 0x10A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1125 DUP3 PUSH2 0x926 JUMP JUMPDEST SWAP2 POP PUSH2 0x1130 DUP4 PUSH2 0x926 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1165 JUMPI PUSH2 0x1164 PUSH2 0x10EB JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5C OR PUSH26 0x5542B2DC53E02FABBC4BFE1BBD5EC1C9F91C380AF9FA9FB0F0FC CODECOPY BASEFEE 0xC8 PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ", + "sourceMap": "63:2398:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2009:449;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;188:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1823:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;136:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1423:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;998:419;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;162:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2009:449;2089:10;2068:31;;:9;:17;2078:6;2068:17;;;;;;;;;;;;;;;;;;;;;:31;;;2060:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;2316:84;2323:6;2331:10;2343:7;:15;2351:6;2343:15;;;;;;;;;;;2360:11;:19;2372:6;2360:19;;;;;;;;;;;2381:10;:18;2392:6;2381:18;;;;;;;;;;;2316:84;;;;;;;;;;:::i;:::-;;;;;;;;2418:10;2410:28;;:41;2439:11;;2410:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2009:449;:::o;188:23::-;;;;:::o;1823:180::-;1879:10;;:::i;:::-;1908:88;;;;;;;;1912:6;1908:88;;;;1920:9;:17;1930:6;1920:17;;;;;;;;;;;;;;;;;;;;;1908:88;;;;;;1939:7;:15;1947:6;1939:15;;;;;;;;;;;1908:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1956:11;:19;1968:6;1956:19;;;;;;;;;;;1908:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1977:10;:18;1988:6;1977:18;;;;;;;;;;;1908:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1901:95;;1823:180;;;:::o;136:20::-;;;;;;;;;;;;:::o;1423:394::-;1579:10;1558:31;;:9;:17;1568:6;1558:17;;;;;;;;;;;;;;;;;;;;;:31;;;1550:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;1639:5;1621:7;:15;1629:6;1621:15;;;;;;;;;;;:23;;;;;;;;;;;;:::i;:::-;;1676:9;1654:11;:19;1666:6;1654:19;;;;;;;;;;;:31;;;;;;;;;;;;:::i;:::-;;1716:15;1695:10;:18;1706:6;1695:18;;;;;;;;;;;:36;;;;;;;;;;;;:::i;:::-;;1746:64;1756:6;1764:10;1776:5;1783:9;1794:15;1746:64;;;;;;;;;;:::i;:::-;;;;;;;;1423:394;;;;:::o;998:419::-;1141:11;;1128:9;:24;1120:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1211:10;1192:9;:16;1202:5;;1192:16;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1248:5;1231:7;:14;1239:5;;1231:14;;;;;;;;;;;:22;;;;;;;;;;;;:::i;:::-;;1284:9;1263:11;:18;1275:5;;1263:18;;;;;;;;;;;:30;;;;;;;;;;;;:::i;:::-;;1323:15;1303:10;:17;1314:5;;1303:17;;;;;;;;;;;:35;;;;;;;;;;;;:::i;:::-;;1368:15;1348:10;:17;1359:5;;1348:17;;;;;;;;;;;:35;;;;1409:1;1401:5;;:9;;;;:::i;:::-;1393:5;:17;;;;998:419;;;:::o;162:20::-;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:9:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:108::-;1454:24;1472:5;1454:24;:::i;:::-;1449:3;1442:37;1377:108;;:::o;1491:126::-;1528:7;1568:42;1561:5;1557:54;1546:65;;1491:126;;;:::o;1623:96::-;1660:7;1689:24;1707:5;1689:24;:::i;:::-;1678:35;;1623:96;;;:::o;1725:108::-;1802:24;1820:5;1802:24;:::i;:::-;1797:3;1790:37;1725:108;;:::o;1839:99::-;1891:6;1925:5;1919:12;1909:22;;1839:99;;;:::o;1944:159::-;2018:11;2052:6;2047:3;2040:19;2092:4;2087:3;2083:14;2068:29;;1944:159;;;;:::o;2109:307::-;2177:1;2187:113;2201:6;2198:1;2195:13;2187:113;;;2286:1;2281:3;2277:11;2271:18;2267:1;2262:3;2258:11;2251:39;2223:2;2220:1;2216:10;2211:15;;2187:113;;;2318:6;2315:1;2312:13;2309:101;;;2398:1;2389:6;2384:3;2380:16;2373:27;2309:101;2158:258;2109:307;;;:::o;2422:102::-;2463:6;2514:2;2510:7;2505:2;2498:5;2494:14;2490:28;2480:38;;2422:102;;;:::o;2530:344::-;2608:3;2636:39;2669:5;2636:39;:::i;:::-;2691:61;2745:6;2740:3;2691:61;:::i;:::-;2684:68;;2761:52;2806:6;2801:3;2794:4;2787:5;2783:16;2761:52;:::i;:::-;2838:29;2860:6;2838:29;:::i;:::-;2833:3;2829:39;2822:46;;2612:262;2530:344;;;;:::o;2950:1283::-;3061:3;3097:4;3092:3;3088:14;3185:4;3178:5;3174:16;3168:23;3204:63;3261:4;3256:3;3252:14;3238:12;3204:63;:::i;:::-;3112:165;3363:4;3356:5;3352:16;3346:23;3382:63;3439:4;3434:3;3430:14;3416:12;3382:63;:::i;:::-;3287:168;3540:4;3533:5;3529:16;3523:23;3593:3;3587:4;3583:14;3576:4;3571:3;3567:14;3560:38;3619:73;3687:4;3673:12;3619:73;:::i;:::-;3611:81;;3465:238;3792:4;3785:5;3781:16;3775:23;3845:3;3839:4;3835:14;3828:4;3823:3;3819:14;3812:38;3871:73;3939:4;3925:12;3871:73;:::i;:::-;3863:81;;3713:242;4043:4;4036:5;4032:16;4026:23;4096:3;4090:4;4086:14;4079:4;4074:3;4070:14;4063:38;4122:73;4190:4;4176:12;4122:73;:::i;:::-;4114:81;;3965:241;4223:4;4216:11;;3066:1167;2950:1283;;;;:::o;4239:357::-;4374:4;4412:2;4401:9;4397:18;4389:26;;4461:9;4455:4;4451:20;4447:1;4436:9;4432:17;4425:47;4489:100;4584:4;4575:6;4489:100;:::i;:::-;4481:108;;4239:357;;;;:::o;4602:118::-;4689:24;4707:5;4689:24;:::i;:::-;4684:3;4677:37;4602:118;;:::o;4726:222::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4870:71;4938:1;4927:9;4923:17;4914:6;4870:71;:::i;:::-;4726:222;;;;:::o;4954:117::-;5063:1;5060;5053:12;5077:117;5186:1;5183;5176:12;5200:180;5248:77;5245:1;5238:88;5345:4;5342:1;5335:15;5369:4;5366:1;5359:15;5386:281;5469:27;5491:4;5469:27;:::i;:::-;5461:6;5457:40;5599:6;5587:10;5584:22;5563:18;5551:10;5548:34;5545:62;5542:88;;;5610:18;;:::i;:::-;5542:88;5650:10;5646:2;5639:22;5429:238;5386:281;;:::o;5673:129::-;5707:6;5734:20;;:::i;:::-;5724:30;;5763:33;5791:4;5783:6;5763:33;:::i;:::-;5673:129;;;:::o;5808:308::-;5870:4;5960:18;5952:6;5949:30;5946:56;;;5982:18;;:::i;:::-;5946:56;6020:29;6042:6;6020:29;:::i;:::-;6012:37;;6104:4;6098;6094:15;6086:23;;5808:308;;;:::o;6122:154::-;6206:6;6201:3;6196;6183:30;6268:1;6259:6;6254:3;6250:16;6243:27;6122:154;;;:::o;6282:412::-;6360:5;6385:66;6401:49;6443:6;6401:49;:::i;:::-;6385:66;:::i;:::-;6376:75;;6474:6;6467:5;6460:21;6512:4;6505:5;6501:16;6550:3;6541:6;6536:3;6532:16;6529:25;6526:112;;;6557:79;;:::i;:::-;6526:112;6647:41;6681:6;6676:3;6671;6647:41;:::i;:::-;6366:328;6282:412;;;;;:::o;6714:340::-;6770:5;6819:3;6812:4;6804:6;6800:17;6796:27;6786:122;;6827:79;;:::i;:::-;6786:122;6944:6;6931:20;6969:79;7044:3;7036:6;7029:4;7021:6;7017:17;6969:79;:::i;:::-;6960:88;;6776:278;6714:340;;;;:::o;7060:1305::-;7176:6;7184;7192;7200;7249:3;7237:9;7228:7;7224:23;7220:33;7217:120;;;7256:79;;:::i;:::-;7217:120;7376:1;7401:53;7446:7;7437:6;7426:9;7422:22;7401:53;:::i;:::-;7391:63;;7347:117;7531:2;7520:9;7516:18;7503:32;7562:18;7554:6;7551:30;7548:117;;;7584:79;;:::i;:::-;7548:117;7689:63;7744:7;7735:6;7724:9;7720:22;7689:63;:::i;:::-;7679:73;;7474:288;7829:2;7818:9;7814:18;7801:32;7860:18;7852:6;7849:30;7846:117;;;7882:79;;:::i;:::-;7846:117;7987:63;8042:7;8033:6;8022:9;8018:22;7987:63;:::i;:::-;7977:73;;7772:288;8127:2;8116:9;8112:18;8099:32;8158:18;8150:6;8147:30;8144:117;;;8180:79;;:::i;:::-;8144:117;8285:63;8340:7;8331:6;8320:9;8316:22;8285:63;:::i;:::-;8275:73;;8070:288;7060:1305;;;;;;;:::o;8371:1159::-;8478:6;8486;8494;8543:2;8531:9;8522:7;8518:23;8514:32;8511:119;;;8549:79;;:::i;:::-;8511:119;8697:1;8686:9;8682:17;8669:31;8727:18;8719:6;8716:30;8713:117;;;8749:79;;:::i;:::-;8713:117;8854:63;8909:7;8900:6;8889:9;8885:22;8854:63;:::i;:::-;8844:73;;8640:287;8994:2;8983:9;8979:18;8966:32;9025:18;9017:6;9014:30;9011:117;;;9047:79;;:::i;:::-;9011:117;9152:63;9207:7;9198:6;9187:9;9183:22;9152:63;:::i;:::-;9142:73;;8937:288;9292:2;9281:9;9277:18;9264:32;9323:18;9315:6;9312:30;9309:117;;;9345:79;;:::i;:::-;9309:117;9450:63;9505:7;9496:6;9485:9;9481:22;9450:63;:::i;:::-;9440:73;;9235:288;8371:1159;;;;;:::o;9536:169::-;9620:11;9654:6;9649:3;9642:19;9694:4;9689:3;9685:14;9670:29;;9536:169;;;;:::o;9711:167::-;9851:19;9847:1;9839:6;9835:14;9828:43;9711:167;:::o;9884:366::-;10026:3;10047:67;10111:2;10106:3;10047:67;:::i;:::-;10040:74;;10123:93;10212:3;10123:93;:::i;:::-;10241:2;10236:3;10232:12;10225:19;;9884:366;;;:::o;10256:419::-;10422:4;10460:2;10449:9;10445:18;10437:26;;10509:9;10503:4;10499:20;10495:1;10484:9;10480:17;10473:47;10537:131;10663:4;10537:131;:::i;:::-;10529:139;;10256:419;;;:::o;10681:180::-;10729:77;10726:1;10719:88;10826:4;10823:1;10816:15;10850:4;10847:1;10840:15;10867:320;10911:6;10948:1;10942:4;10938:12;10928:22;;10995:1;10989:4;10985:12;11016:18;11006:81;;11072:4;11064:6;11060:17;11050:27;;11006:81;11134:2;11126:6;11123:14;11103:18;11100:38;11097:84;;;11153:18;;:::i;:::-;11097:84;10918:269;10867:320;;;:::o;11193:141::-;11242:4;11265:3;11257:11;;11288:3;11285:1;11278:14;11322:4;11319:1;11309:18;11301:26;;11193:141;;;:::o;11364:802::-;11449:3;11486:5;11480:12;11515:36;11541:9;11515:36;:::i;:::-;11567:71;11631:6;11626:3;11567:71;:::i;:::-;11560:78;;11669:1;11658:9;11654:17;11685:1;11680:135;;;;11829:1;11824:336;;;;11647:513;;11680:135;11764:4;11760:9;11749;11745:25;11740:3;11733:38;11800:4;11795:3;11791:14;11784:21;;11680:135;;11824:336;11891:38;11923:5;11891:38;:::i;:::-;11951:1;11965:154;11979:6;11976:1;11973:13;11965:154;;;12053:7;12047:14;12043:1;12038:3;12034:11;12027:35;12103:1;12094:7;12090:15;12079:26;;12001:4;11998:1;11994:12;11989:17;;11965:154;;;12148:1;12143:3;12139:11;12132:18;;11831:329;;11647:513;;11453:713;;11364:802;;;;:::o;12172:919::-;12428:4;12466:3;12455:9;12451:19;12443:27;;12480:71;12548:1;12537:9;12533:17;12524:6;12480:71;:::i;:::-;12561:72;12629:2;12618:9;12614:18;12605:6;12561:72;:::i;:::-;12680:9;12674:4;12670:20;12665:2;12654:9;12650:18;12643:48;12708:75;12778:4;12769:6;12708:75;:::i;:::-;12700:83;;12830:9;12824:4;12820:20;12815:2;12804:9;12800:18;12793:48;12858:75;12928:4;12919:6;12858:75;:::i;:::-;12850:83;;12981:9;12975:4;12971:20;12965:3;12954:9;12950:19;12943:49;13009:75;13079:4;13070:6;13009:75;:::i;:::-;13001:83;;12172:919;;;;;;;;:::o;13097:364::-;13185:3;13213:39;13246:5;13213:39;:::i;:::-;13268:71;13332:6;13327:3;13268:71;:::i;:::-;13261:78;;13348:52;13393:6;13388:3;13381:4;13374:5;13370:16;13348:52;:::i;:::-;13425:29;13447:6;13425:29;:::i;:::-;13420:3;13416:39;13409:46;;13189:272;13097:364;;;;:::o;13467:937::-;13732:4;13770:3;13759:9;13755:19;13747:27;;13784:71;13852:1;13841:9;13837:17;13828:6;13784:71;:::i;:::-;13865:72;13933:2;13922:9;13918:18;13909:6;13865:72;:::i;:::-;13984:9;13978:4;13974:20;13969:2;13958:9;13954:18;13947:48;14012:78;14085:4;14076:6;14012:78;:::i;:::-;14004:86;;14137:9;14131:4;14127:20;14122:2;14111:9;14107:18;14100:48;14165:78;14238:4;14229:6;14165:78;:::i;:::-;14157:86;;14291:9;14285:4;14281:20;14275:3;14264:9;14260:19;14253:49;14319:78;14392:4;14383:6;14319:78;:::i;:::-;14311:86;;13467:937;;;;;;;;:::o;14410:175::-;14550:27;14546:1;14538:6;14534:14;14527:51;14410:175;:::o;14591:366::-;14733:3;14754:67;14818:2;14813:3;14754:67;:::i;:::-;14747:74;;14830:93;14919:3;14830:93;:::i;:::-;14948:2;14943:3;14939:12;14932:19;;14591:366;;;:::o;14963:419::-;15129:4;15167:2;15156:9;15152:18;15144:26;;15216:9;15210:4;15206:20;15202:1;15191:9;15187:17;15180:47;15244:131;15370:4;15244:131;:::i;:::-;15236:139;;14963:419;;;:::o;15388:180::-;15436:77;15433:1;15426:88;15533:4;15530:1;15523:15;15557:4;15554:1;15547:15;15574:305;15614:3;15633:20;15651:1;15633:20;:::i;:::-;15628:25;;15667:20;15685:1;15667:20;:::i;:::-;15662:25;;15821:1;15753:66;15749:74;15746:1;15743:81;15740:107;;;15827:18;;:::i;:::-;15740:107;15871:1;15868;15864:9;15857:16;;15574:305;;;;:::o" + }, + "methodIdentifiers": { + "amountToPay()": "7ba13680", + "appID()": "f9a6cbae", + "getDAppData(uint256)": "887e4b86", + "owner()": "8da5cb5b", + "releaseDApp(uint256)": "5cadd4a9", + "submitDApp(string,string,string)": "e73173a4", + "updateDApp(uint256,string,string,string)": "ab444f28" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountToPay\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"NewApp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"name\":\"UpdateApp\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"amountToPay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"appID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"getDAppData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"appID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"appName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appIPFSHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"appAddData\",\"type\":\"string\"}],\"internalType\":\"struct NotUpgradableStore.App\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"}],\"name\":\"releaseDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"submitDApp\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_appID\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_additionalData\",\"type\":\"string\"}],\"name\":\"updateDApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/NotUpgradableStore.sol\":\"NotUpgradableStore\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/NotUpgradableStore.sol\":{\"keccak256\":\"0xb42cfd5d2e6dfd7fddf3904b2938fac6fc68ae949f6c078ed872ef877298e284\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://9fab65761f1b32611ceded657da604fb503c716c09818531f72e2e9cd9d16932\",\"dweb:/ipfs/QmXnb5W9v1qbeL9ifJMA8Gx139GoMy8vdfsYwMzRKJjN5N\"]}},\"version\":1}" + } + } + }, + "sources": { + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "exportedSymbols": { + "Initializable": [ + 45 + ] + }, + "id": 46, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "98:23:0" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Initializable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "123:1490:0", + "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To initialize the implementation contract, you can either invoke the\n initializer manually, or you can include a constructor to automatically mark it as initialized when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() initializer {}\n ```\n ====" + }, + "fullyImplemented": true, + "id": 45, + "linearizedBaseContracts": [ + 45 + ], + "name": "Initializable", + "nameLocation": "1632:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "1652:73:0", + "text": " @dev Indicates that the contract has been initialized." + }, + "id": 5, + "mutability": "mutable", + "name": "_initialized", + "nameLocation": "1743:12:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "1730:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1730:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 6, + "nodeType": "StructuredDocumentation", + "src": "1762:91:0", + "text": " @dev Indicates that the contract is in the process of being initialized." + }, + "id": 8, + "mutability": "mutable", + "name": "_initializing", + "nameLocation": "1871:13:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "1858:26:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1858:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 43, + "nodeType": "Block", + "src": "2012:348:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "2030:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2047:13:0", + "subExpression": { + "id": 13, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5, + "src": "2048:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2030:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2062:48:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "typeString": "literal_string \"Initializable: contract is already initialized\"" + }, + "value": "Initializable: contract is already initialized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "typeString": "literal_string \"Initializable: contract is already initialized\"" + } + ], + "id": 11, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2022:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2022:89:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18, + "nodeType": "ExpressionStatement", + "src": "2022:89:0" + }, + { + "assignments": [ + 20 + ], + "declarations": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "isTopLevelCall", + "nameLocation": "2127:14:0", + "nodeType": "VariableDeclaration", + "scope": 43, + "src": "2122:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 19, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2122:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 23, + "initialValue": { + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2144:14:0", + "subExpression": { + "id": 21, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "2145:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2122:36:0" + }, + { + "condition": { + "id": 24, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20, + "src": "2172:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34, + "nodeType": "IfStatement", + "src": "2168:98:0", + "trueBody": { + "id": 33, + "nodeType": "Block", + "src": "2188:78:0", + "statements": [ + { + "expression": { + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 25, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "2202:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 26, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2218:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2202:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28, + "nodeType": "ExpressionStatement", + "src": "2202:20:0" + }, + { + "expression": { + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 29, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5, + "src": "2236:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2251:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2236:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32, + "nodeType": "ExpressionStatement", + "src": "2236:19:0" + } + ] + } + }, + { + "id": 35, + "nodeType": "PlaceholderStatement", + "src": "2276:1:0" + }, + { + "condition": { + "id": 36, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20, + "src": "2292:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 42, + "nodeType": "IfStatement", + "src": "2288:66:0", + "trueBody": { + "id": 41, + "nodeType": "Block", + "src": "2308:46:0", + "statements": [ + { + "expression": { + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 37, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "2322:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2338:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2322:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40, + "nodeType": "ExpressionStatement", + "src": "2322:21:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 9, + "nodeType": "StructuredDocumentation", + "src": "1891:93:0", + "text": " @dev Modifier to protect an initializer function from being invoked twice." + }, + "id": 44, + "name": "initializer", + "nameLocation": "1998:11:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [], + "src": "2009:2:0" + }, + "src": "1989:371:0", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 46, + "src": "1614:748:0", + "usedErrors": [] + } + ], + "src": "98:2265:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/access/AccessControl.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "exportedSymbols": { + "AccessControl": [ + 354 + ], + "Context": [ + 449 + ], + "ERC165": [ + 676 + ], + "IAccessControl": [ + 427 + ], + "IERC165": [ + 688 + ], + "Strings": [ + 652 + ] + }, + "id": 355, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 47, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "93:23:1" + }, + { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "file": "./IAccessControl.sol", + "id": 48, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 355, + "sourceUnit": 428, + "src": "118:30:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 49, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 355, + "sourceUnit": 450, + "src": "149:30:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "../utils/Strings.sol", + "id": 50, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 355, + "sourceUnit": 653, + "src": "180:30:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../utils/introspection/ERC165.sol", + "id": 51, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 355, + "sourceUnit": 677, + "src": "211:43:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 53, + "name": "Context", + "nodeType": "IdentifierPath", + "referencedDeclaration": 449, + "src": "1826:7:1" + }, + "id": 54, + "nodeType": "InheritanceSpecifier", + "src": "1826:7:1" + }, + { + "baseName": { + "id": 55, + "name": "IAccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 427, + "src": "1835:14:1" + }, + "id": 56, + "nodeType": "InheritanceSpecifier", + "src": "1835:14:1" + }, + { + "baseName": { + "id": 57, + "name": "ERC165", + "nodeType": "IdentifierPath", + "referencedDeclaration": 676, + "src": "1851:6:1" + }, + "id": 58, + "nodeType": "InheritanceSpecifier", + "src": "1851:6:1" + } + ], + "canonicalName": "AccessControl", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 52, + "nodeType": "StructuredDocumentation", + "src": "256:1534:1", + "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it." + }, + "fullyImplemented": true, + "id": 354, + "linearizedBaseContracts": [ + 354, + 676, + 688, + 427, + 449 + ], + "name": "AccessControl", + "nameLocation": "1809:13:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "AccessControl.RoleData", + "id": 65, + "members": [ + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "members", + "nameLocation": "1915:7:1", + "nodeType": "VariableDeclaration", + "scope": 65, + "src": "1890:32:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 61, + "keyType": { + "id": 59, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1890:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 60, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1909:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "1940:9:1", + "nodeType": "VariableDeclaration", + "scope": 65, + "src": "1932:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 63, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1932:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "RoleData", + "nameLocation": "1871:8:1", + "nodeType": "StructDefinition", + "scope": 354, + "src": "1864:92:1", + "visibility": "public" + }, + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "_roles", + "nameLocation": "1999:6:1", + "nodeType": "VariableDeclaration", + "scope": 354, + "src": "1962:43:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" + }, + "typeName": { + "id": 69, + "keyType": { + "id": 66, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1970:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1962:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" + }, + "valueType": { + "id": 68, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 67, + "name": "RoleData", + "nodeType": "IdentifierPath", + "referencedDeclaration": 65, + "src": "1981:8:1" + }, + "referencedDeclaration": 65, + "src": "1981:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$65_storage_ptr", + "typeString": "struct AccessControl.RoleData" + } + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "a217fddf", + "id": 73, + "mutability": "constant", + "name": "DEFAULT_ADMIN_ROLE", + "nameLocation": "2036:18:1", + "nodeType": "VariableDeclaration", + "scope": 354, + "src": "2012:49:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 71, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "30783030", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2057:4:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x00" + }, + "visibility": "public" + }, + { + "body": { + "id": 85, + "nodeType": "Block", + "src": "2480:58:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 79, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "2501:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 80, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 439, + "src": "2507:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2507:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 78, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "2490:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address) view" + } + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2490:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 83, + "nodeType": "ExpressionStatement", + "src": "2490:30:1" + }, + { + "id": 84, + "nodeType": "PlaceholderStatement", + "src": "2530:1:1" + } + ] + }, + "documentation": { + "id": 74, + "nodeType": "StructuredDocumentation", + "src": "2068:375:1", + "text": " @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._" + }, + "id": 86, + "name": "onlyRole", + "nameLocation": "2457:8:1", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "role", + "nameLocation": "2474:4:1", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "2466:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 75, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2466:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2465:14:1" + }, + "src": "2448:90:1", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 675 + ], + "body": { + "id": 107, + "nodeType": "Block", + "src": "2696:111:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 95, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2713:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 97, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 427, + "src": "2733:14:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$427_$", + "typeString": "type(contract IAccessControl)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$427_$", + "typeString": "type(contract IAccessControl)" + } + ], + "id": 96, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2728:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 98, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2728:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControl_$427", + "typeString": "type(contract IAccessControl)" + } + }, + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "2728:32:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "2713:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 103, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2788:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 101, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2764:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControl_$354_$", + "typeString": "type(contract super AccessControl)" + } + }, + "id": 102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 675, + "src": "2764:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2764:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2713:87:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 94, + "id": 106, + "nodeType": "Return", + "src": "2706:94:1" + } + ] + }, + "documentation": { + "id": 87, + "nodeType": "StructuredDocumentation", + "src": "2544:56:1", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 108, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2614:17:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 91, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2672:8:1" + }, + "parameters": { + "id": 90, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2639:11:1", + "nodeType": "VariableDeclaration", + "scope": 108, + "src": "2632:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 88, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2632:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2631:20:1" + }, + "returnParameters": { + "id": 94, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 108, + "src": "2690:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 92, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2690:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2689:6:1" + }, + "scope": 354, + "src": "2605:202:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 394 + ], + "body": { + "id": 126, + "nodeType": "Block", + "src": "2978:53:1", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 119, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 70, + "src": "2995:6:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$65_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 121, + "indexExpression": { + "id": 120, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "3002:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2995:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$65_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 122, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "members", + "nodeType": "MemberAccess", + "referencedDeclaration": 62, + "src": "2995:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 124, + "indexExpression": { + "id": 123, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 113, + "src": "3016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2995:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 118, + "id": 125, + "nodeType": "Return", + "src": "2988:36:1" + } + ] + }, + "documentation": { + "id": 109, + "nodeType": "StructuredDocumentation", + "src": "2813:76:1", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "2903:7:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 115, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2954:8:1" + }, + "parameters": { + "id": 114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 111, + "mutability": "mutable", + "name": "role", + "nameLocation": "2919:4:1", + "nodeType": "VariableDeclaration", + "scope": 127, + "src": "2911:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 110, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 113, + "mutability": "mutable", + "name": "account", + "nameLocation": "2933:7:1", + "nodeType": "VariableDeclaration", + "scope": 127, + "src": "2925:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2925:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2910:31:1" + }, + "returnParameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 127, + "src": "2972:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 116, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2972:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2971:6:1" + }, + "scope": 354, + "src": "2894:137:1", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 169, + "nodeType": "Block", + "src": "3377:419:1", + "statements": [ + { + "condition": { + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3391:23:1", + "subExpression": { + "arguments": [ + { + "id": 136, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "3400:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 137, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "3406:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 135, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 127, + "src": "3392:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 138, + "isConstant": false, + "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, @@ -21770,66 +32013,542 @@ "src": "919:39:4", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "902:56:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 521, + "nodeType": "ExpressionStatement", + "src": "902:56:4" + }, + { + "expression": { + "id": 524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 522, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "972:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "981:2:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "972:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 525, + "nodeType": "ExpressionStatement", + "src": "972:11:4" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 496, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "851:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "860:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "851:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 527, + "nodeType": "WhileStatement", + "src": "844:150:4" + }, + { + "expression": { + "arguments": [ + { + "id": 530, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "1017:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1010:6:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 528, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1010:6:4", + "typeDescriptions": {} + } + }, + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1010:14:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 462, + "id": 532, + "nodeType": "Return", + "src": "1003:21:4" + } + ] + }, + "documentation": { + "id": 456, + "nodeType": "StructuredDocumentation", + "src": "233:90:4", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 534, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "337:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 459, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 458, + "mutability": "mutable", + "name": "value", + "nameLocation": "354:5:4", + "nodeType": "VariableDeclaration", + "scope": 534, + "src": "346:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 457, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "346:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "345:15:4" + }, + "returnParameters": { + "id": 462, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 461, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 534, + "src": "384:13:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 460, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "384:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "383:15:4" + }, + "scope": 652, + "src": "328:703:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 574, + "nodeType": "Block", + "src": "1210:255:4", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 542, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 537, + "src": "1224:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1233:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1224:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 548, + "nodeType": "IfStatement", + "src": "1220:54:4", + "trueBody": { + "id": 547, + "nodeType": "Block", + "src": "1236:38:4", + "statements": [ + { + "expression": { + "hexValue": "30783030", + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1257:6:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4", + "typeString": "literal_string \"0x00\"" + }, + "value": "0x00" + }, + "functionReturnParameters": 541, + "id": 546, + "nodeType": "Return", + "src": "1250:13:4" + } + ] + } + }, + { + "assignments": [ + 550 + ], + "declarations": [ + { + "constant": false, + "id": 550, + "mutability": "mutable", + "name": "temp", + "nameLocation": "1291:4:4", + "nodeType": "VariableDeclaration", + "scope": 574, + "src": "1283:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1283:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 552, + "initialValue": { + "id": 551, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 537, + "src": "1298:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1283:20:4" + }, + { + "assignments": [ + 554 + ], + "declarations": [ + { + "constant": false, + "id": 554, + "mutability": "mutable", + "name": "length", + "nameLocation": "1321:6:4", + "nodeType": "VariableDeclaration", + "scope": 574, + "src": "1313:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 553, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1313:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 556, + "initialValue": { + "hexValue": "30", + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1330:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1313:18:4" + }, + { + "body": { + "id": 567, + "nodeType": "Block", + "src": "1359:57:4", + "statements": [ + { + "expression": { + "id": 561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1373:8:4", + "subExpression": { + "id": 560, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "1373:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "902:56:4", "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 521, + "id": 562, "nodeType": "ExpressionStatement", - "src": "902:56:4" + "src": "1373:8:4" }, { "expression": { - "id": 524, + "id": 565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 522, - "name": "value", + "id": 563, + "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "972:5:4", + "referencedDeclaration": 550, + "src": "1395:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", - "operator": "/=", + "operator": ">>=", "rightHandSide": { - "hexValue": "3130", - "id": 523, + "hexValue": "38", + "id": 564, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "981:2:4", + "src": "1404:1:4", "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" }, - "value": "10" + "value": "8" }, - "src": "972:11:4", + "src": "1395:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 525, + "id": 566, "nodeType": "ExpressionStatement", - "src": "972:11:4" + "src": "1395:10:4" } ] }, @@ -21838,18 +32557,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 498, + "id": 559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 496, - "name": "value", + "id": 557, + "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "851:5:4", + "referencedDeclaration": 550, + "src": "1348:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21859,120 +32578,131 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 497, + "id": 558, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "860:1:4", + "src": "1356:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "851:10:4", + "src": "1348:9:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 527, + "id": 568, "nodeType": "WhileStatement", - "src": "844:150:4" + "src": "1341:75:4" }, { "expression": { "arguments": [ { - "id": 530, - "name": "buffer", + "id": 570, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 490, - "src": "1017:6:4", + "referencedDeclaration": 537, + "src": "1444:5:4", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 571, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "1451:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1010:6:4", + "id": 569, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 575, + 651 + ], + "referencedDeclaration": 651, + "src": "1432:11:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 528, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1010:6:4", - "typeDescriptions": {} + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" } }, - "id": 531, + "id": 572, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1010:14:4", + "src": "1432:26:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "functionReturnParameters": 462, - "id": 532, + "functionReturnParameters": 541, + "id": 573, "nodeType": "Return", - "src": "1003:21:4" + "src": "1425:33:4" } ] }, "documentation": { - "id": 456, + "id": 535, "nodeType": "StructuredDocumentation", - "src": "233:90:4", - "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + "src": "1037:94:4", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." }, - "id": 534, + "id": 575, "implemented": true, "kind": "function", "modifiers": [], - "name": "toString", - "nameLocation": "337:8:4", + "name": "toHexString", + "nameLocation": "1145:11:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 459, + "id": 538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 458, + "id": 537, "mutability": "mutable", "name": "value", - "nameLocation": "354:5:4", + "nameLocation": "1165:5:4", "nodeType": "VariableDeclaration", - "scope": 534, - "src": "346:13:4", + "scope": 575, + "src": "1157:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21980,10 +32710,10 @@ "typeString": "uint256" }, "typeName": { - "id": 457, + "id": 536, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "346:7:4", + "src": "1157:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21992,21 +32722,21 @@ "visibility": "internal" } ], - "src": "345:15:4" + "src": "1156:15:4" }, "returnParameters": { - "id": 462, + "id": 541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 461, + "id": 540, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 534, - "src": "384:13:4", + "scope": 575, + "src": "1195:13:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -22014,266 +32744,495 @@ "typeString": "string" }, "typeName": { - "id": 460, + "id": 539, "name": "string", "nodeType": "ElementaryTypeName", - "src": "384:6:4", + "src": "1195:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1194:15:4" + }, + "scope": 652, + "src": "1136:329:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 650, + "nodeType": "Block", + "src": "1678:351:4", + "statements": [ + { + "assignments": [ + 586 + ], + "declarations": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "1701:6:4", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "1688:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 585, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1688:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 595, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1720:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 590, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 580, + "src": "1724:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1720:10:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1733:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "1720:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1710:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 587, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1714:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1710:25:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } }, - "visibility": "internal" - } - ], - "src": "383:15:4" - }, - "scope": 652, - "src": "328:703:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 574, - "nodeType": "Block", - "src": "1210:255:4", - "statements": [ + "nodeType": "VariableDeclarationStatement", + "src": "1688:47:4" + }, { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 544, + "expression": { + "id": 600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "id": 542, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "1224:5:4", + "leftHandSide": { + "baseExpression": { + "id": 596, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "1745:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 598, + "indexExpression": { + "hexValue": "30", + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1752:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1745:9:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "hexValue": "30", - "id": 543, + "id": 599, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1233:1:4", + "src": "1757:3:4", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" }, "value": "0" }, - "src": "1224:10:4", + "src": "1745:15:4", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" } }, - "id": 548, - "nodeType": "IfStatement", - "src": "1220:54:4", - "trueBody": { - "id": 547, - "nodeType": "Block", - "src": "1236:38:4", - "statements": [ - { - "expression": { - "hexValue": "30783030", - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1257:6:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4", - "typeString": "literal_string \"0x00\"" - }, - "value": "0x00" - }, - "functionReturnParameters": 541, - "id": 546, - "nodeType": "Return", - "src": "1250:13:4" - } - ] - } + "id": 601, + "nodeType": "ExpressionStatement", + "src": "1745:15:4" }, { - "assignments": [ - 550 - ], - "declarations": [ - { - "constant": false, - "id": 550, - "mutability": "mutable", - "name": "temp", - "nameLocation": "1291:4:4", - "nodeType": "VariableDeclaration", - "scope": 574, - "src": "1283:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 549, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1283:7:4", + "expression": { + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 602, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "1770:6:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } }, - "visibility": "internal" - } - ], - "id": 552, - "initialValue": { - "id": 551, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "1298:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1283:20:4" - }, - { - "assignments": [ - 554 - ], - "declarations": [ - { - "constant": false, - "id": 554, - "mutability": "mutable", - "name": "length", - "nameLocation": "1321:6:4", - "nodeType": "VariableDeclaration", - "scope": 574, - "src": "1313:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 553, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1313:7:4", + "id": 604, + "indexExpression": { + "hexValue": "31", + "id": 603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1777:1:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1770:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1782:3:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" }, - "visibility": "internal" - } - ], - "id": 556, - "initialValue": { - "hexValue": "30", - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1330:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "value": "x" }, - "value": "0" + "src": "1770:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } }, - "nodeType": "VariableDeclarationStatement", - "src": "1313:18:4" + "id": 607, + "nodeType": "ExpressionStatement", + "src": "1770:15:4" }, { "body": { - "id": 567, + "id": 636, "nodeType": "Block", - "src": "1359:57:4", + "src": "1840:87:4", "statements": [ { "expression": { - "id": 561, + "id": 630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1373:8:4", - "subExpression": { - "id": 560, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "1373:6:4", + "leftHandSide": { + "baseExpression": { + "id": 622, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "1854:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 624, + "indexExpression": { + "id": 623, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "1861:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1854:9:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 625, + "name": "_HEX_SYMBOLS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 455, + "src": "1866:12:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 629, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 626, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 578, + "src": "1879:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1887:3:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "1879:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1866:25:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" } }, + "src": "1854:37:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" } }, - "id": 562, + "id": 631, "nodeType": "ExpressionStatement", - "src": "1373:8:4" + "src": "1854:37:4" }, { "expression": { - "id": 565, + "id": 634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 563, - "name": "temp", + "id": 632, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "1395:4:4", + "referencedDeclaration": 578, + "src": "1905:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22282,30 +33241,30 @@ "nodeType": "Assignment", "operator": ">>=", "rightHandSide": { - "hexValue": "38", - "id": 564, + "hexValue": "34", + "id": 633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1404:1:4", + "src": "1915:1:4", "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" }, - "value": "8" + "value": "4" }, - "src": "1395:10:4", + "src": "1905:11:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 566, + "id": 635, "nodeType": "ExpressionStatement", - "src": "1395:10:4" + "src": "1905:11:4" } ] }, @@ -22314,366 +33273,292 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 559, + "id": 618, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 557, - "name": "temp", + "id": 616, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "1348:4:4", + "referencedDeclaration": 609, + "src": "1828:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": ">", "rightExpression": { - "hexValue": "30", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1356:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1348:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 568, - "nodeType": "WhileStatement", - "src": "1341:75:4" - }, - { - "expression": { - "arguments": [ - { - "id": 570, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "1444:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "hexValue": "31", + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1832:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, + "value": "1" + }, + "src": "1828:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 637, + "initializationExpression": { + "assignments": [ + 609 + ], + "declarations": [ { - "id": 571, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "1451:6:4", + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "i", + "nameLocation": "1808:1:4", + "nodeType": "VariableDeclaration", + "scope": 637, + "src": "1800:9:4", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "typeName": { + "id": 608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1800:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" } ], - "expression": { - "argumentTypes": [ - { + "id": 615, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { + "id": 612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1812:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 611, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 580, + "src": "1816:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1812:10:4", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 569, - "name": "toHexString", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 575, - 651 - ], - "referencedDeclaration": 651, - "src": "1432:11:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (uint256,uint256) pure returns (string memory)" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1432:26:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 541, - "id": 573, - "nodeType": "Return", - "src": "1425:33:4" - } - ] - }, - "documentation": { - "id": 535, - "nodeType": "StructuredDocumentation", - "src": "1037:94:4", - "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." - }, - "id": 575, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toHexString", - "nameLocation": "1145:11:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 537, - "mutability": "mutable", - "name": "value", - "nameLocation": "1165:5:4", - "nodeType": "VariableDeclaration", - "scope": 575, - "src": "1157:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 536, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1156:15:4" - }, - "returnParameters": { - "id": 541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 540, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 575, - "src": "1195:13:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 539, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1195:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1194:15:4" - }, - "scope": 652, - "src": "1136:329:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 650, - "nodeType": "Block", - "src": "1678:351:4", - "statements": [ - { - "assignments": [ - 586 - ], - "declarations": [ - { - "constant": false, - "id": 586, - "mutability": "mutable", - "name": "buffer", - "nameLocation": "1701:6:4", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "1688:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" }, - "typeName": { - "id": 585, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1688:5:4", + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1825:1:4", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1812:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1800:26:4" + }, + "loopExpression": { + "expression": { + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "1835:3:4", + "subExpression": { + "id": 619, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "1837:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "visibility": "internal" - } - ], - "id": 595, - "initialValue": { + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 621, + "nodeType": "ExpressionStatement", + "src": "1835:3:4" + }, + "nodeType": "ForStatement", + "src": "1795:132:4" + }, + { + "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 593, + "id": 641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1720:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 590, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "1724:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1720:10:4", + "id": 639, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 578, + "src": "1944:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "+", + "operator": "==", "rightExpression": { - "hexValue": "32", - "id": 592, + "hexValue": "30", + "id": 640, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1733:1:4", + "src": "1953:1:4", "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "value": "2" + "value": "0" }, - "src": "1720:14:4", + "src": "1944:10:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } + }, + { + "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1956:34:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "typeString": "literal_string \"Strings: hex length insufficient\"" + }, + "value": "Strings: hex length insufficient" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "typeString": "literal_string \"Strings: hex length insufficient\"" } ], - "id": 588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1710:9:4", + "id": 638, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1936:7:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 587, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1714:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 594, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -22681,1979 +33566,3649 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1710:25:4", + "src": "1936:55:4", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "1688:47:4" + "id": 644, + "nodeType": "ExpressionStatement", + "src": "1936:55:4" }, { "expression": { - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 596, + "arguments": [ + { + "id": 647, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 586, - "src": "1745:6:4", + "src": "2015:6:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - }, - "id": 598, - "indexExpression": { - "hexValue": "30", - "id": 597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1752:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1745:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 599, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 646, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "string", "lValueRequested": false, - "nodeType": "Literal", - "src": "1757:3:4", + "nodeType": "ElementaryTypeNameExpression", + "src": "2008:6:4", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", - "typeString": "literal_string \"0\"" + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" }, - "value": "0" + "typeName": { + "id": 645, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2008:6:4", + "typeDescriptions": {} + } }, - "src": "1745:15:4", + "id": 648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2008:14:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, - "id": 601, - "nodeType": "ExpressionStatement", - "src": "1745:15:4" + "functionReturnParameters": 584, + "id": 649, + "nodeType": "Return", + "src": "2001:21:4" + } + ] + }, + "documentation": { + "id": 576, + "nodeType": "StructuredDocumentation", + "src": "1471:112:4", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 651, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1597:11:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "value", + "nameLocation": "1617:5:4", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1609:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1609:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" }, + { + "constant": false, + "id": 580, + "mutability": "mutable", + "name": "length", + "nameLocation": "1632:6:4", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1624:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 579, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1624:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1608:31:4" + }, + "returnParameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1663:13:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 582, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1663:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1662:15:4" + }, + "scope": 652, + "src": "1588:441:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 653, + "src": "146:1885:4", + "usedErrors": [] + } + ], + "src": "86:1946:4" + }, + "id": 4 + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "exportedSymbols": { + "ERC165": [ + 676 + ], + "IERC165": [ + 688 + ] + }, + "id": 677, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 654, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "99:23:5" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 655, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 677, + "sourceUnit": 689, + "src": "124:23:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 657, + "name": "IERC165", + "nodeType": "IdentifierPath", + "referencedDeclaration": 688, + "src": "754:7:5" + }, + "id": 658, + "nodeType": "InheritanceSpecifier", + "src": "754:7:5" + } + ], + "canonicalName": "ERC165", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 656, + "nodeType": "StructuredDocumentation", + "src": "149:576:5", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation." + }, + "fullyImplemented": true, + "id": 676, + "linearizedBaseContracts": [ + 676, + 688 + ], + "name": "ERC165", + "nameLocation": "744:6:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 687 + ], + "body": { + "id": 674, + "nodeType": "Block", + "src": "920:64:5", + "statements": [ { "expression": { - "id": 606, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 672, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 602, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "1770:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 604, - "indexExpression": { - "hexValue": "31", - "id": 603, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1777:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1770:9:4", + "leftExpression": { + "id": 667, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 661, + "src": "937:11:5", "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "78", - "id": 605, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1782:3:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", - "typeString": "literal_string \"x\"" - }, - "value": "x" - }, - "src": "1770:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 607, - "nodeType": "ExpressionStatement", - "src": "1770:15:4" - }, - { - "body": { - "id": 636, - "nodeType": "Block", - "src": "1840:87:4", - "statements": [ - { - "expression": { - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 622, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "1854:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 624, - "indexExpression": { - "id": 623, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "1861:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1854:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 625, - "name": "_HEX_SYMBOLS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "1866:12:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "id": 629, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 626, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "1879:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "hexValue": "307866", - "id": 627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1887:3:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_15_by_1", - "typeString": "int_const 15" - }, - "value": "0xf" - }, - "src": "1879:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1866:25:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "src": "1854:37:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 631, - "nodeType": "ExpressionStatement", - "src": "1854:37:4" - }, - { - "expression": { - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 632, - "name": "value", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 669, + "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "1905:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "34", - "id": 633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1915:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "1905:11:4", + "referencedDeclaration": 688, + "src": "957:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$688_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$688_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 668, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "952:4:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" } }, - "id": 635, - "nodeType": "ExpressionStatement", - "src": "1905:11:4" + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "952:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$688", + "typeString": "type(contract IERC165)" + } + }, + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "952:25:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } - ] + }, + "src": "937:40:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 666, + "id": 673, + "nodeType": "Return", + "src": "930:47:5" + } + ] + }, + "documentation": { + "id": 659, + "nodeType": "StructuredDocumentation", + "src": "768:56:5", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 675, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "838:17:5", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 663, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "896:8:5" + }, + "parameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 661, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "863:11:5", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "856:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 660, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "856:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "855:20:5" + }, + "returnParameters": { + "id": 666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 665, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "914:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 664, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "914:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "913:6:5" + }, + "scope": 676, + "src": "829:155:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 677, + "src": "726:260:5", + "usedErrors": [] + } + ], + "src": "99:888:5" + }, + "id": 5 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 688 + ] + }, + "id": 689, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 678, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "100:23:6" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 679, + "nodeType": "StructuredDocumentation", + "src": "125:279:6", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 688, + "linearizedBaseContracts": [ + 688 + ], + "name": "IERC165", + "nameLocation": "415:7:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 680, + "nodeType": "StructuredDocumentation", + "src": "429:340:6", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 687, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "783:17:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 683, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 682, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "808:11:6", + "nodeType": "VariableDeclaration", + "scope": 687, + "src": "801:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 681, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "801:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 616, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "1828:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "31", - "id": 617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1832:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1828:5:4", + "visibility": "internal" + } + ], + "src": "800:20:6" + }, + "returnParameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 685, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 687, + "src": "844:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 684, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "844:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 637, - "initializationExpression": { - "assignments": [ - 609 - ], - "declarations": [ - { - "constant": false, - "id": 609, - "mutability": "mutable", - "name": "i", - "nameLocation": "1808:1:4", - "nodeType": "VariableDeclaration", - "scope": 637, - "src": "1800:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 608, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1800:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 615, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1812:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 611, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "1816:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1812:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1825:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1812:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1800:26:4" + "visibility": "internal" + } + ], + "src": "843:6:6" + }, + "scope": 688, + "src": "774:76:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 689, + "src": "405:447:6", + "usedErrors": [] + } + ], + "src": "100:753:6" + }, + "id": 6 + }, + "contracts/DAppStore.sol": { + "ast": { + "absolutePath": "contracts/DAppStore.sol", + "exportedSymbols": { + "AccessControl": [ + 354 + ], + "Context": [ + 449 + ], + "DAppStore": [ + 1102 + ], + "ERC165": [ + 676 + ], + "IAccessControl": [ + 427 + ], + "IERC165": [ + 688 + ], + "Initializable": [ + 45 + ], + "Strings": [ + 652 + ] + }, + "id": 1103, + "license": "Unlicense", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 690, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "37:23:7" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "id": 691, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1103, + "sourceUnit": 46, + "src": "62:75:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "file": "@openzeppelin/contracts/access/AccessControl.sol", + "id": 692, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1103, + "sourceUnit": 355, + "src": "138:58:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 693, + "name": "Initializable", + "nodeType": "IdentifierPath", + "referencedDeclaration": 45, + "src": "220:13:7" + }, + "id": 694, + "nodeType": "InheritanceSpecifier", + "src": "220:13:7" + }, + { + "baseName": { + "id": 695, + "name": "AccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 354, + "src": "235:13:7" + }, + "id": 696, + "nodeType": "InheritanceSpecifier", + "src": "235:13:7" + } + ], + "canonicalName": "DAppStore", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1102, + "linearizedBaseContracts": [ + 1102, + 354, + 676, + 688, + 427, + 449, + 45 + ], + "name": "DAppStore", + "nameLocation": "207:9:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "75b238fc", + "id": 701, + "mutability": "constant", + "name": "ADMIN_ROLE", + "nameLocation": "284:10:7", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "260:60:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 697, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "260:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "41444d494e5f524f4c45", + "id": 699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "307:12:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" }, - "loopExpression": { - "expression": { - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": true, - "src": "1835:3:4", - "subExpression": { - "id": 619, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "1837:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 621, - "nodeType": "ExpressionStatement", - "src": "1835:3:4" + "value": "ADMIN_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + } + ], + "id": 698, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "297:9:7", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "297:23:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f9a6cbae", + "id": 703, + "mutability": "mutable", + "name": "appID", + "nameLocation": "341:5:7", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "326:20:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "326:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ba13680", + "id": 705, + "mutability": "mutable", + "name": "amountToPay", + "nameLocation": "364:11:7", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "352:23:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 704, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "352:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 707, + "mutability": "mutable", + "name": "versionCode", + "nameLocation": "386:11:7", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "381:16:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 706, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "381:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "functionSelector": "93946a82", + "id": 709, + "mutability": "mutable", + "name": "currentDAppStoreIPFSHash", + "nameLocation": "417:24:7", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "403:38:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 708, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "403:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 713, + "mutability": "mutable", + "name": "appOwners", + "nameLocation": "472:9:7", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "447:34:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 712, + "keyType": { + "id": 710, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "455:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "447:24:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 711, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "463:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 717, + "mutability": "mutable", + "name": "appName", + "nameLocation": "511:7:7", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "487:31:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 716, + "keyType": { + "id": 714, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "495:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "487:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 715, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "503:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 721, + "mutability": "mutable", + "name": "appIPFSHash", + "nameLocation": "548:11:7", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "524:35:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 720, + "keyType": { + "id": 718, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "532:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "524:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 719, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "540:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 725, + "mutability": "mutable", + "name": "appAddData", + "nameLocation": "589:10:7", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "565:34:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 724, + "keyType": { + "id": 722, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "573:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "565:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 723, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "581:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 729, + "mutability": "mutable", + "name": "submitTime", + "nameLocation": "627:10:7", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "605:32:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 728, + "keyType": { + "id": 726, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "613:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "605:21:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 727, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "621:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 733, + "mutability": "mutable", + "name": "appVerified", + "nameLocation": "665:11:7", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "643:33:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "typeName": { + "id": 732, + "keyType": { + "id": 730, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "651:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "643:21:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "valueType": { + "id": 731, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "659:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + }, + { + "anonymous": false, + "id": 745, + "name": "NewApp", + "nameLocation": "689:6:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 735, + "indexed": false, + "mutability": "mutable", + "name": "appID", + "nameLocation": "701:5:7", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "696:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "nodeType": "ForStatement", - "src": "1795:132:4" + "typeName": { + "id": 734, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "696:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" }, { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 639, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "1944:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1953:1:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1944:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1956:34:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", - "typeString": "literal_string \"Strings: hex length insufficient\"" - }, - "value": "Strings: hex length insufficient" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", - "typeString": "literal_string \"Strings: hex length insufficient\"" - } - ], - "id": 638, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1936:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1936:55:4", - "tryCall": false, + "constant": false, + "id": 737, + "indexed": false, + "mutability": "mutable", + "name": "appOwner", + "nameLocation": "716:8:7", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "708:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 736, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "708:7:7", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 644, - "nodeType": "ExpressionStatement", - "src": "1936:55:4" + "visibility": "internal" }, { - "expression": { - "arguments": [ - { - "id": 647, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "2015:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2008:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 645, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2008:6:4", - "typeDescriptions": {} - } - }, - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2008:14:4", - "tryCall": false, + "constant": false, + "id": 739, + "indexed": false, + "mutability": "mutable", + "name": "appName", + "nameLocation": "733:7:7", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "726:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "726:6:7", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "functionReturnParameters": 584, - "id": 649, - "nodeType": "Return", - "src": "2001:21:4" - } - ] - }, - "documentation": { - "id": 576, - "nodeType": "StructuredDocumentation", - "src": "1471:112:4", - "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." - }, - "id": 651, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toHexString", - "nameLocation": "1597:11:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 581, - "nodeType": "ParameterList", - "parameters": [ + "visibility": "internal" + }, { "constant": false, - "id": 578, + "id": 741, + "indexed": false, "mutability": "mutable", - "name": "value", - "nameLocation": "1617:5:4", + "name": "appIPFSHash", + "nameLocation": "749:11:7", "nodeType": "VariableDeclaration", - "scope": 651, - "src": "1609:13:4", + "scope": 745, + "src": "742:18:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, - "typeName": { - "id": 577, - "name": "uint256", + "typeName": { + "id": 740, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "1609:7:4", + "src": "742:6:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" }, { "constant": false, - "id": 580, + "id": 743, + "indexed": false, "mutability": "mutable", - "name": "length", - "nameLocation": "1632:6:4", + "name": "appAddData", + "nameLocation": "769:10:7", "nodeType": "VariableDeclaration", - "scope": 651, - "src": "1624:14:4", + "scope": 745, + "src": "762:17:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 579, - "name": "uint256", + "id": 742, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "1624:7:4", + "src": "762:6:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" } ], - "src": "1608:31:4" + "src": "695:85:7" }, - "returnParameters": { - "id": 584, + "src": "683:98:7" + }, + { + "anonymous": false, + "id": 757, + "name": "UpdateApp", + "nameLocation": "792:9:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 756, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 583, + "id": 747, + "indexed": false, "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", + "name": "appID", + "nameLocation": "807:5:7", "nodeType": "VariableDeclaration", - "scope": 651, - "src": "1663:13:4", + "scope": 757, + "src": "802:10:7", "stateVariable": false, - "storageLocation": "memory", + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 582, - "name": "string", + "id": 746, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1663:6:4", + "src": "802:4:7", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" - } - ], - "src": "1662:15:4" - }, - "scope": 652, - "src": "1588:441:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 653, - "src": "146:1885:4", - "usedErrors": [] - } - ], - "src": "86:1946:4" - }, - "id": 4 - }, - "@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "exportedSymbols": { - "ERC165": [ - 676 - ], - "IERC165": [ - 688 - ] - }, - "id": 677, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 654, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "99:23:5" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "file": "./IERC165.sol", - "id": 655, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 677, - "sourceUnit": 689, - "src": "124:23:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 657, - "name": "IERC165", - "nodeType": "IdentifierPath", - "referencedDeclaration": 688, - "src": "754:7:5" - }, - "id": 658, - "nodeType": "InheritanceSpecifier", - "src": "754:7:5" - } - ], - "canonicalName": "ERC165", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 656, - "nodeType": "StructuredDocumentation", - "src": "149:576:5", - "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation." - }, - "fullyImplemented": true, - "id": 676, - "linearizedBaseContracts": [ - 676, - 688 - ], - "name": "ERC165", - "nameLocation": "744:6:5", - "nodeType": "ContractDefinition", - "nodes": [ - { - "baseFunctions": [ - 687 - ], - "body": { - "id": 674, - "nodeType": "Block", - "src": "920:64:5", - "statements": [ + }, { - "expression": { - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 667, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 661, - "src": "937:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 669, - "name": "IERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "957:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC165_$688_$", - "typeString": "type(contract IERC165)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_IERC165_$688_$", - "typeString": "type(contract IERC165)" - } - ], - "id": 668, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "952:4:5", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 670, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "952:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$688", - "typeString": "type(contract IERC165)" - } - }, - "id": 671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "interfaceId", - "nodeType": "MemberAccess", - "src": "952:25:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "937:40:5", + "constant": false, + "id": 749, + "indexed": false, + "mutability": "mutable", + "name": "appOwner", + "nameLocation": "822:8:7", + "nodeType": "VariableDeclaration", + "scope": 757, + "src": "814:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 748, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "814:7:7", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "functionReturnParameters": 666, - "id": 673, - "nodeType": "Return", - "src": "930:47:5" - } - ] - }, - "documentation": { - "id": 659, - "nodeType": "StructuredDocumentation", - "src": "768:56:5", - "text": " @dev See {IERC165-supportsInterface}." - }, - "functionSelector": "01ffc9a7", - "id": 675, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "838:17:5", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 663, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "896:8:5" - }, - "parameters": { - "id": 662, - "nodeType": "ParameterList", - "parameters": [ + "visibility": "internal" + }, { "constant": false, - "id": 661, + "id": 751, + "indexed": false, "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "863:11:5", + "name": "appName", + "nameLocation": "839:7:7", "nodeType": "VariableDeclaration", - "scope": 675, - "src": "856:18:5", + "scope": 757, + "src": "832:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 660, - "name": "bytes4", + "id": 750, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "856:6:5", + "src": "832:6:7", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 753, + "indexed": false, + "mutability": "mutable", + "name": "appIPFSHash", + "nameLocation": "855:11:7", + "nodeType": "VariableDeclaration", + "scope": 757, + "src": "848:18:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 752, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "848:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 755, + "indexed": false, + "mutability": "mutable", + "name": "appAddData", + "nameLocation": "875:10:7", + "nodeType": "VariableDeclaration", + "scope": 757, + "src": "868:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 754, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "868:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" } ], - "src": "855:20:5" + "src": "801:85:7" }, - "returnParameters": { - "id": 666, + "src": "786:101:7" + }, + { + "anonymous": false, + "id": 761, + "name": "ReleaseApp", + "nameLocation": "898:10:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 665, + "id": 759, + "indexed": false, "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", + "name": "appID", + "nameLocation": "914:5:7", "nodeType": "VariableDeclaration", - "scope": 675, - "src": "914:4:5", + "scope": 761, + "src": "909:10:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 664, - "name": "bool", + "id": 758, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "914:4:5", + "src": "909:4:7", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" } ], - "src": "913:6:5" + "src": "908:12:7" }, - "scope": 676, - "src": "829:155:5", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - } - ], - "scope": 677, - "src": "726:260:5", - "usedErrors": [] - } - ], - "src": "99:888:5" - }, - "id": 5 - }, - "@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "exportedSymbols": { - "IERC165": [ - 688 - ] - }, - "id": 689, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 678, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "100:23:6" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IERC165", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 679, - "nodeType": "StructuredDocumentation", - "src": "125:279:6", - "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." - }, - "fullyImplemented": false, - "id": 688, - "linearizedBaseContracts": [ - 688 - ], - "name": "IERC165", - "nameLocation": "415:7:6", - "nodeType": "ContractDefinition", - "nodes": [ + "src": "892:29:7" + }, { - "documentation": { - "id": 680, - "nodeType": "StructuredDocumentation", - "src": "429:340:6", - "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + "anonymous": false, + "id": 765, + "name": "VerifyApp", + "nameLocation": "932:9:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "indexed": false, + "mutability": "mutable", + "name": "appID", + "nameLocation": "947:5:7", + "nodeType": "VariableDeclaration", + "scope": 765, + "src": "942:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 762, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "942:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "941:12:7" }, - "functionSelector": "01ffc9a7", - "id": 687, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "783:17:6", - "nodeType": "FunctionDefinition", + "src": "926:28:7" + }, + { + "anonymous": false, + "id": 769, + "name": "DeleteApp", + "nameLocation": "965:9:7", + "nodeType": "EventDefinition", "parameters": { - "id": 683, + "id": 768, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 682, + "id": 767, + "indexed": false, "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "808:11:6", + "name": "appID", + "nameLocation": "980:5:7", "nodeType": "VariableDeclaration", - "scope": 687, - "src": "801:18:6", + "scope": 769, + "src": "975:10:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 681, - "name": "bytes4", + "id": 766, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "801:6:6", + "src": "975:4:7", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" } ], - "src": "800:20:6" + "src": "974:12:7" }, - "returnParameters": { - "id": 686, + "src": "959:28:7" + }, + { + "anonymous": false, + "id": 775, + "name": "StoreUpdate", + "nameLocation": "998:11:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 774, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 685, + "id": 771, + "indexed": false, "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", + "name": "versionCode", + "nameLocation": "1015:11:7", "nodeType": "VariableDeclaration", - "scope": 687, - "src": "844:4:6", + "scope": 775, + "src": "1010:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 684, - "name": "bool", + "id": 770, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "844:4:6", + "src": "1010:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 773, + "indexed": false, + "mutability": "mutable", + "name": "ipfsHash", + "nameLocation": "1035:8:7", + "nodeType": "VariableDeclaration", + "scope": 775, + "src": "1028:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 772, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1028:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1009:35:7" + }, + "src": "992:53:7" + }, + { + "body": { + "id": 817, + "nodeType": "Block", + "src": "1136:190:7", + "statements": [ + { + "expression": { + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 785, + "name": "amountToPay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "1146:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 786, + "name": "_amountToPay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "1160:12:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1146:26:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 788, + "nodeType": "ExpressionStatement", + "src": "1146:26:7" + }, + { + "body": { + "id": 807, + "nodeType": "Block", + "src": "1218:58:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 801, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "1243:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "baseExpression": { + "id": 802, + "name": "admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "1255:6:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 804, + "indexExpression": { + "id": 803, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "1262:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1255:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 800, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 262, + "src": "1232:10:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1232:33:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 806, + "nodeType": "ExpressionStatement", + "src": "1232:33:7" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 793, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "1197:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 794, + "name": "admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "1199:6:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1199:13:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1197:15:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "visibility": "internal" - } - ], - "src": "843:6:6" - }, - "scope": 688, - "src": "774:76:6", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 689, - "src": "405:447:6", - "usedErrors": [] - } - ], - "src": "100:753:6" - }, - "id": 6 - }, - "contracts/DAppStore.sol": { - "ast": { - "absolutePath": "contracts/DAppStore.sol", - "exportedSymbols": { - "AccessControl": [ - 354 - ], - "Context": [ - 449 - ], - "DAppStore": [ - 1058 - ], - "ERC165": [ - 676 - ], - "IAccessControl": [ - 427 - ], - "IERC165": [ - 688 - ], - "Initializable": [ - 45 - ], - "Strings": [ - 652 - ] - }, - "id": 1059, - "license": "Unlicense", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 690, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "37:23:7" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "id": 691, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 46, - "src": "62:75:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", - "file": "@openzeppelin/contracts/access/AccessControl.sol", - "id": 692, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1059, - "sourceUnit": 355, - "src": "138:58:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 693, - "name": "Initializable", - "nodeType": "IdentifierPath", - "referencedDeclaration": 45, - "src": "220:13:7" - }, - "id": 694, - "nodeType": "InheritanceSpecifier", - "src": "220:13:7" - }, - { - "baseName": { - "id": 695, - "name": "AccessControl", - "nodeType": "IdentifierPath", - "referencedDeclaration": 354, - "src": "235:13:7" - }, - "id": 696, - "nodeType": "InheritanceSpecifier", - "src": "235:13:7" - } - ], - "canonicalName": "DAppStore", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 1058, - "linearizedBaseContracts": [ - 1058, - 354, - 676, - 688, - 427, - 449, - 45 - ], - "name": "DAppStore", - "nameLocation": "207:9:7", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "functionSelector": "75b238fc", - "id": 701, - "mutability": "constant", - "name": "ADMIN_ROLE", - "nameLocation": "284:10:7", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "260:60:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 697, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "260:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ + "id": 808, + "initializationExpression": { + "assignments": [ + 790 + ], + "declarations": [ + { + "constant": false, + "id": 790, + "mutability": "mutable", + "name": "i", + "nameLocation": "1191:1:7", + "nodeType": "VariableDeclaration", + "scope": 808, + "src": "1186:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 789, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1186:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 792, + "initialValue": { + "hexValue": "30", + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1195:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1186:10:7" + }, + "loopExpression": { + "expression": { + "id": 798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1213:3:7", + "subExpression": { + "id": 797, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "1213:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 799, + "nodeType": "ExpressionStatement", + "src": "1213:3:7" + }, + "nodeType": "ForStatement", + "src": "1182:94:7" + }, + { + "expression": { + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 809, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1285:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1293:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1285:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 812, + "nodeType": "ExpressionStatement", + "src": "1285:9:7" + }, { - "hexValue": "41444d494e5f524f4c45", - "id": 699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "307:12:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", - "typeString": "literal_string \"ADMIN_ROLE\"" + "expression": { + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 813, + "name": "versionCode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 707, + "src": "1304:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1318:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1304:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "value": "ADMIN_ROLE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", - "typeString": "literal_string \"ADMIN_ROLE\"" - } - ], - "id": 698, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "297:9:7", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" + "id": 816, + "nodeType": "ExpressionStatement", + "src": "1304:15:7" } - }, - "id": 700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "297:23:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "f9a6cbae", - "id": 703, - "mutability": "mutable", - "name": "appID", - "nameLocation": "341:5:7", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "326:20:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 702, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "326:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7ba13680", - "id": 705, - "mutability": "mutable", - "name": "amountToPay", - "nameLocation": "364:11:7", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "352:23:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 704, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "352:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 709, - "mutability": "mutable", - "name": "appOwners", - "nameLocation": "406:9:7", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "381:34:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" + ] }, - "typeName": { - "id": 708, - "keyType": { - "id": 706, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "389:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "381:24:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 707, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "397:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "functionSelector": "a920b78c", + "id": 818, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 783, + "kind": "modifierInvocation", + "modifierName": { + "id": 782, + "name": "initializer", + "nodeType": "IdentifierPath", + "referencedDeclaration": 44, + "src": "1124:11:7" + }, + "nodeType": "ModifierInvocation", + "src": "1124:11:7" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 713, - "mutability": "mutable", - "name": "appName", - "nameLocation": "445:7:7", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "421:31:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 712, - "keyType": { - "id": 710, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "429:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "421:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 711, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "437:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + ], + "name": "initialize", + "nameLocation": "1060:10:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 781, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 777, + "mutability": "mutable", + "name": "_amountToPay", + "nameLocation": "1076:12:7", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "1071:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 776, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1071:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 780, + "mutability": "mutable", + "name": "admins", + "nameLocation": "1109:6:7", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "1090:25:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1090:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 779, + "nodeType": "ArrayTypeName", + "src": "1090:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" } - } + ], + "src": "1070:46:7" }, - "visibility": "internal" + "returnParameters": { + "id": 784, + "nodeType": "ParameterList", + "parameters": [], + "src": "1136:0:7" + }, + "scope": 1102, + "src": "1051:275:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" }, { - "constant": false, - "id": 717, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "482:11:7", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "458:35:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 716, - "keyType": { - "id": 714, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "466:4:7", + "canonicalName": "DAppStore.App", + "id": 829, + "members": [ + { + "constant": false, + "id": 820, + "mutability": "mutable", + "name": "appID", + "nameLocation": "1358:5:7", + "nodeType": "VariableDeclaration", + "scope": 829, + "src": "1353:10:7", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "typeName": { + "id": 819, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1353:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" }, - "nodeType": "Mapping", - "src": "458:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "appOwner", + "nameLocation": "1381:8:7", + "nodeType": "VariableDeclaration", + "scope": 829, + "src": "1373:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1373:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" }, - "valueType": { - "id": 715, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "474:6:7", + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "appName", + "nameLocation": "1406:7:7", + "nodeType": "VariableDeclaration", + "scope": 829, + "src": "1399:14:7", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 721, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "523:10:7", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "499:34:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 720, - "keyType": { - "id": 718, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "507:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "499:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 823, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1399:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" }, - "valueType": { - "id": 719, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "515:6:7", + { + "constant": false, + "id": 826, + "mutability": "mutable", + "name": "appIPFSHash", + "nameLocation": "1430:11:7", + "nodeType": "VariableDeclaration", + "scope": 829, + "src": "1423:18:7", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 725, - "mutability": "mutable", - "name": "submitTime", - "nameLocation": "561:10:7", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "539:32:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 724, - "keyType": { - "id": 722, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "547:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "539:21:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 723, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "555:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 729, - "mutability": "mutable", - "name": "appVerified", - "nameLocation": "599:11:7", - "nodeType": "VariableDeclaration", - "scope": 1058, - "src": "577:33:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "typeName": { - "id": 728, - "keyType": { - "id": 726, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "585:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "577:21:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 727, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "593:4:7", + }, + "typeName": { + "id": 825, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1423:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 828, + "mutability": "mutable", + "name": "appAddData", + "nameLocation": "1458:10:7", + "nodeType": "VariableDeclaration", + "scope": 829, + "src": "1451:17:7", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 827, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1451:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "App", + "nameLocation": "1339:3:7", + "nodeType": "StructDefinition", + "scope": 1102, + "src": "1332:143:7", + "visibility": "public" + }, + { + "body": { + "id": 891, + "nodeType": "Block", + "src": "1593:404:7", + "statements": [ + { + "expression": { + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 838, + "name": "appOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 713, + "src": "1677:9:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 840, + "indexExpression": { + "id": 839, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1687:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1677:16:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 841, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1696:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1696:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1677:29:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 844, + "nodeType": "ExpressionStatement", + "src": "1677:29:7" + }, + { + "expression": { + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 845, + "name": "appName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "1716:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 847, + "indexExpression": { + "id": 846, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1724:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1716:14:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 848, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "1733:5:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1716:22:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 850, + "nodeType": "ExpressionStatement", + "src": "1716:22:7" + }, + { + "expression": { + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 851, + "name": "appIPFSHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 721, + "src": "1748:11:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 853, + "indexExpression": { + "id": 852, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1760:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1748:18:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 854, + "name": "_ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 833, + "src": "1769:9:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1748:30:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 856, + "nodeType": "ExpressionStatement", + "src": "1748:30:7" + }, + { + "expression": { + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 857, + "name": "appAddData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 725, + "src": "1788:10:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 859, + "indexExpression": { + "id": 858, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1799:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1788:17:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 860, + "name": "_additionalData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 835, + "src": "1808:15:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1788:35:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 862, + "nodeType": "ExpressionStatement", + "src": "1788:35:7" + }, + { + "expression": { + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 863, + "name": "submitTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "1833:10:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 865, + "indexExpression": { + "id": 864, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1844:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1833:17:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 866, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1853:5:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1853:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1833:35:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 869, + "nodeType": "ExpressionStatement", + "src": "1833:35:7" + }, + { + "eventCall": { + "arguments": [ + { + "id": 871, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1890:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 872, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1897:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1897:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 874, + "name": "appName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "1909:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 876, + "indexExpression": { + "id": 875, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1917:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1909:14:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "baseExpression": { + "id": 877, + "name": "appIPFSHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 721, + "src": "1925:11:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 879, + "indexExpression": { + "id": 878, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1937:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1925:18:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "baseExpression": { + "id": 880, + "name": "appAddData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 725, + "src": "1945:10:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 882, + "indexExpression": { + "id": 881, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1956:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1945:17:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 870, + "name": "NewApp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 745, + "src": "1883:6:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,string memory,string memory,string memory)" + } + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1883:80:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 884, + "nodeType": "EmitStatement", + "src": "1878:85:7" + }, + { + "expression": { + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 885, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1973:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 886, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "1981:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1989:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1981:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1973:17:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 890, + "nodeType": "ExpressionStatement", + "src": "1973:17:7" } - } + ] }, - "visibility": "internal" - }, - { - "anonymous": false, - "id": 741, - "name": "NewApp", - "nameLocation": "623:6:7", - "nodeType": "EventDefinition", + "functionSelector": "e73173a4", + "id": 892, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "submitDApp", + "nameLocation": "1490:10:7", + "nodeType": "FunctionDefinition", "parameters": { - "id": 740, + "id": 836, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 731, - "indexed": false, + "id": 831, "mutability": "mutable", - "name": "appID", - "nameLocation": "635:5:7", + "name": "_name", + "nameLocation": "1515:5:7", "nodeType": "VariableDeclaration", - "scope": 741, - "src": "630:10:7", + "scope": 892, + "src": "1501:19:7", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 730, - "name": "uint", + "id": 830, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1501:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 833, + "mutability": "mutable", + "name": "_ipfsHash", + "nameLocation": "1536:9:7", + "nodeType": "VariableDeclaration", + "scope": 892, + "src": "1522:23:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 832, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1522:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 835, + "mutability": "mutable", + "name": "_additionalData", + "nameLocation": "1561:15:7", + "nodeType": "VariableDeclaration", + "scope": 892, + "src": "1547:29:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 834, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "630:4:7", + "src": "1547:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1500:77:7" + }, + "returnParameters": { + "id": 837, + "nodeType": "ParameterList", + "parameters": [], + "src": "1593:0:7" + }, + "scope": 1102, + "src": "1481:516:7", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 940, + "nodeType": "Block", + "src": "2120:277:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 904, + "name": "appOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 713, + "src": "2138:9:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 906, + "indexExpression": { + "id": 905, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "2148:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2138:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 907, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2159:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2159:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2138:31:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f74206f776e6572206f662064617070", + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2171:19:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", + "typeString": "literal_string \"Not owner of dapp\"" + }, + "value": "Not owner of dapp" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", + "typeString": "literal_string \"Not owner of dapp\"" + } + ], + "id": 903, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2130:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2130:61:7", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "visibility": "internal" + "id": 912, + "nodeType": "ExpressionStatement", + "src": "2130:61:7" }, { - "constant": false, - "id": 733, - "indexed": false, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "650:8:7", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "642:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 732, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "642:7:7", - "stateMutability": "nonpayable", + "expression": { + "id": 917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 913, + "name": "appName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "2201:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 915, + "indexExpression": { + "id": 914, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "2209:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2201:15:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 916, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "2219:5:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2201:23:7", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, - "visibility": "internal" + "id": 918, + "nodeType": "ExpressionStatement", + "src": "2201:23:7" }, { - "constant": false, - "id": 735, - "indexed": false, - "mutability": "mutable", - "name": "appName", - "nameLocation": "667:7:7", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "660:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 734, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "660:6:7", + "expression": { + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 919, + "name": "appIPFSHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 721, + "src": "2234:11:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 921, + "indexExpression": { + "id": 920, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "2246:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2234:19:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 922, + "name": "_ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "2256:9:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2234:31:7", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, - "visibility": "internal" + "id": 924, + "nodeType": "ExpressionStatement", + "src": "2234:31:7" }, { - "constant": false, - "id": 737, - "indexed": false, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "683:11:7", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "676:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 736, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "676:6:7", + "expression": { + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 925, + "name": "appAddData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 725, + "src": "2275:10:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 927, + "indexExpression": { + "id": 926, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "2286:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2275:18:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 928, + "name": "_additionalData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 900, + "src": "2296:15:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2275:36:7", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, - "visibility": "internal" + "id": 930, + "nodeType": "ExpressionStatement", + "src": "2275:36:7" }, { - "constant": false, - "id": 739, - "indexed": false, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "703:10:7", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "696:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 738, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "696:6:7", + "eventCall": { + "arguments": [ + { + "id": 932, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "2336:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 933, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2344:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2344:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 935, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "2356:5:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 936, + "name": "_ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "2363:9:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 937, + "name": "_additionalData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 900, + "src": "2374:15:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 931, + "name": "UpdateApp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "2326:9:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,string memory,string memory,string memory)" + } + }, + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2326:64:7", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "visibility": "internal" + "id": 939, + "nodeType": "EmitStatement", + "src": "2321:69:7" } - ], - "src": "629:85:7" + ] }, - "src": "617:98:7" - }, - { - "anonymous": false, - "id": 753, - "name": "UpdateApp", - "nameLocation": "726:9:7", - "nodeType": "EventDefinition", + "functionSelector": "ab444f28", + "id": 941, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updateDApp", + "nameLocation": "2012:10:7", + "nodeType": "FunctionDefinition", "parameters": { - "id": 752, + "id": 901, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 743, - "indexed": false, + "id": 894, "mutability": "mutable", - "name": "appID", - "nameLocation": "741:5:7", + "name": "_appID", + "nameLocation": "2028:6:7", "nodeType": "VariableDeclaration", - "scope": 753, - "src": "736:10:7", + "scope": 941, + "src": "2023:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24661,10 +37216,10 @@ "typeString": "uint256" }, "typeName": { - "id": 742, + "id": 893, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "736:4:7", + "src": "2023:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24674,54 +37229,24 @@ }, { "constant": false, - "id": 745, - "indexed": false, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "756:8:7", - "nodeType": "VariableDeclaration", - "scope": 753, - "src": "748:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 744, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "748:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 747, - "indexed": false, + "id": 896, "mutability": "mutable", - "name": "appName", - "nameLocation": "773:7:7", + "name": "_name", + "nameLocation": "2050:5:7", "nodeType": "VariableDeclaration", - "scope": 753, - "src": "766:14:7", + "scope": 941, + "src": "2036:19:7", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { - "id": 746, + "id": 895, "name": "string", "nodeType": "ElementaryTypeName", - "src": "766:6:7", + "src": "2036:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -24731,25 +37256,24 @@ }, { "constant": false, - "id": 749, - "indexed": false, + "id": 898, "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "789:11:7", + "name": "_ipfsHash", + "nameLocation": "2071:9:7", "nodeType": "VariableDeclaration", - "scope": 753, - "src": "782:18:7", + "scope": 941, + "src": "2057:23:7", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { - "id": 748, + "id": 897, "name": "string", "nodeType": "ElementaryTypeName", - "src": "782:6:7", + "src": "2057:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -24759,25 +37283,24 @@ }, { "constant": false, - "id": 751, - "indexed": false, + "id": 900, "mutability": "mutable", - "name": "appAddData", - "nameLocation": "809:10:7", + "name": "_additionalData", + "nameLocation": "2096:15:7", "nodeType": "VariableDeclaration", - "scope": 753, - "src": "802:17:7", + "scope": 941, + "src": "2082:29:7", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { - "id": 750, + "id": 899, "name": "string", "nodeType": "ElementaryTypeName", - "src": "802:6:7", + "src": "2082:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -24786,73 +37309,267 @@ "visibility": "internal" } ], - "src": "735:85:7" + "src": "2022:90:7" + }, + "returnParameters": { + "id": 902, + "nodeType": "ParameterList", + "parameters": [], + "src": "2120:0:7" }, - "src": "720:101:7" + "scope": 1102, + "src": "2003:394:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" }, { - "anonymous": false, - "id": 757, - "name": "ReleaseApp", - "nameLocation": "832:10:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 756, - "nodeType": "ParameterList", - "parameters": [ + "body": { + "id": 965, + "nodeType": "Block", + "src": "2471:112:7", + "statements": [ { - "constant": false, - "id": 755, - "indexed": false, - "mutability": "mutable", - "name": "appID", - "nameLocation": "848:5:7", - "nodeType": "VariableDeclaration", - "scope": 757, - "src": "843:10:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 754, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "843:4:7", + "expression": { + "arguments": [ + { + "id": 950, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "2492:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 951, + "name": "appOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 713, + "src": "2500:9:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 953, + "indexExpression": { + "id": 952, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "2510:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2500:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 954, + "name": "appName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "2519:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 956, + "indexExpression": { + "id": 955, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "2527:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2519:15:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "baseExpression": { + "id": 957, + "name": "appIPFSHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 721, + "src": "2536:11:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 959, + "indexExpression": { + "id": 958, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "2548:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2536:19:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "baseExpression": { + "id": 960, + "name": "appAddData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 725, + "src": "2557:10:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 962, + "indexExpression": { + "id": 961, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "2568:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2557:18:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 949, + "name": "App", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "2488:3:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_App_$829_storage_ptr_$", + "typeString": "type(struct DAppStore.App storage pointer)" + } + }, + "id": 963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2488:88:7", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_App_$829_memory_ptr", + "typeString": "struct DAppStore.App memory" } }, - "visibility": "internal" + "functionReturnParameters": 948, + "id": 964, + "nodeType": "Return", + "src": "2481:95:7" } - ], - "src": "842:12:7" + ] }, - "src": "826:29:7" - }, - { - "anonymous": false, - "id": 761, - "name": "VerifyApp", - "nameLocation": "866:9:7", - "nodeType": "EventDefinition", + "functionSelector": "887e4b86", + "id": 966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDAppData", + "nameLocation": "2412:11:7", + "nodeType": "FunctionDefinition", "parameters": { - "id": 760, + "id": 944, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 759, - "indexed": false, + "id": 943, "mutability": "mutable", - "name": "appID", - "nameLocation": "881:5:7", + "name": "_appID", + "nameLocation": "2429:6:7", "nodeType": "VariableDeclaration", - "scope": 761, - "src": "876:10:7", + "scope": 966, + "src": "2424:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24860,10 +37577,10 @@ "typeString": "uint256" }, "typeName": { - "id": 758, + "id": 942, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "876:4:7", + "src": "2424:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24872,433 +37589,759 @@ "visibility": "internal" } ], - "src": "875:12:7" + "src": "2423:13:7" }, - "src": "860:28:7" - }, - { - "anonymous": false, - "id": 765, - "name": "DeleteApp", - "nameLocation": "899:9:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 764, + "returnParameters": { + "id": 948, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 763, - "indexed": false, + "id": 947, "mutability": "mutable", - "name": "appID", - "nameLocation": "914:5:7", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 765, - "src": "909:10:7", + "scope": 966, + "src": "2459:10:7", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_App_$829_memory_ptr", + "typeString": "struct DAppStore.App" }, "typeName": { - "id": 762, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "909:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "908:12:7" - }, - "src": "893:28:7" - }, - { - "body": { - "id": 803, - "nodeType": "Block", - "src": "1012:165:7", - "statements": [ - { - "expression": { - "id": 777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 775, - "name": "amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 705, - "src": "1022:11:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 776, - "name": "_amountToPay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "1036:12:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1022:26:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 778, - "nodeType": "ExpressionStatement", - "src": "1022:26:7" - }, - { - "body": { - "id": 797, - "nodeType": "Block", - "src": "1094:58:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 791, - "name": "ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "1119:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "baseExpression": { - "id": 792, - "name": "admins", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "1131:6:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 794, - "indexExpression": { - "id": 793, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 780, - "src": "1138:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1131:9:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 946, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 945, + "name": "App", + "nodeType": "IdentifierPath", + "referencedDeclaration": 829, + "src": "2459:3:7" + }, + "referencedDeclaration": 829, + "src": "2459:3:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_App_$829_storage_ptr", + "typeString": "struct DAppStore.App" + } + }, + "visibility": "internal" + } + ], + "src": "2458:12:7" + }, + "scope": 1102, + "src": "2403:180:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 994, + "nodeType": "Block", + "src": "2630:342:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 972, + "name": "appOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 713, + "src": "2648:9:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" } - ], + }, + "id": 974, + "indexExpression": { + "id": 973, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 968, + "src": "2658:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2648:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 790, - "name": "_setupRole", + "id": 975, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 262, - "src": "1108:10:7", + "referencedDeclaration": -15, + "src": "2669:3:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 795, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1108:33:7", - "tryCall": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2669:10:7", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 796, - "nodeType": "ExpressionStatement", - "src": "1108:33:7" + "src": "2648:31:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f74206f776e6572206f662064617070", + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2681:19:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", + "typeString": "literal_string \"Not owner of dapp\"" + }, + "value": "Not owner of dapp" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", + "typeString": "literal_string \"Not owner of dapp\"" + } + ], + "id": 971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2640:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" }, - "id": 786, + "id": 979, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "id": 783, - "name": "i", + "names": [], + "nodeType": "FunctionCall", + "src": "2640:61:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 980, + "nodeType": "ExpressionStatement", + "src": "2640:61:7" + }, + { + "documentation": "The test-version on rinkeby does check for 48h passed.", + "eventCall": { + "arguments": [ + { + "id": 982, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 968, + "src": "2907:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 981, + "name": "ReleaseApp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 780, - "src": "1073:1:7", + "referencedDeclaration": 761, + "src": "2896:10:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 784, - "name": "admins", + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2896:18:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 984, + "nodeType": "EmitStatement", + "src": "2891:23:7" + }, + { + "expression": { + "arguments": [ + { + "id": 991, + "name": "amountToPay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "1075:6:7", + "referencedDeclaration": 705, + "src": "2953:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 987, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2932:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2932:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2924:8:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2924:8:7", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2924:19:7", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" } }, - "id": 785, + "id": 990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "length", + "memberName": "transfer", "nodeType": "MemberAccess", - "src": "1075:13:7", + "src": "2924:28:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "src": "1073:15:7", + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2924:41:7", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 798, - "initializationExpression": { - "assignments": [ - 780 - ], - "declarations": [ + "id": 993, + "nodeType": "ExpressionStatement", + "src": "2924:41:7" + } + ] + }, + "functionSelector": "5cadd4a9", + "id": 995, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "releaseDApp", + "nameLocation": "2598:11:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 969, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 968, + "mutability": "mutable", + "name": "_appID", + "nameLocation": "2615:6:7", + "nodeType": "VariableDeclaration", + "scope": 995, + "src": "2610:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 967, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2610:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2609:13:7" + }, + "returnParameters": { + "id": 970, + "nodeType": "ParameterList", + "parameters": [], + "src": "2630:0:7" + }, + "scope": 1102, + "src": "2589:383:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1022, + "nodeType": "Block", + "src": "3039:142:7", + "statements": [ + { + "expression": { + "arguments": [ { - "constant": false, - "id": 780, - "mutability": "mutable", - "name": "i", - "nameLocation": "1067:1:7", - "nodeType": "VariableDeclaration", - "scope": 798, - "src": "1062:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "typeName": { - "id": 779, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1062:4:7", + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1004, + "name": "appVerified", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "3057:11:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 1006, + "indexExpression": { + "id": 1005, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "3069:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3057:19:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "visibility": "internal" + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "66616c7365", + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3080:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3057:28:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416c7265616479207665726966696564", + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3087:18:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5", + "typeString": "literal_string \"Already verified\"" + }, + "value": "Already verified" } ], - "id": 782, - "initialValue": { - "hexValue": "30", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1071:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1062:10:7" - }, - "loopExpression": { "expression": { - "id": 788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1089:3:7", - "subExpression": { - "id": 787, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 780, - "src": "1089:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5", + "typeString": "literal_string \"Already verified\"" } - }, + ], + "id": 1003, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3049:7:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 789, - "nodeType": "ExpressionStatement", - "src": "1089:3:7" + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3049:57:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "nodeType": "ForStatement", - "src": "1058:94:7" + "id": 1011, + "nodeType": "ExpressionStatement", + "src": "3049:57:7" }, { "expression": { - "id": 801, + "id": 1016, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 799, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1161:5:7", + "baseExpression": { + "id": 1012, + "name": "appVerified", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "3116:11:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 1014, + "indexExpression": { + "id": 1013, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "3128:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3116:19:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "hexValue": "30", - "id": 800, + "hexValue": "74727565", + "id": 1015, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1169:1:7", + "src": "3138:4:7", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "value": "0" + "value": "true" }, - "src": "1161:9:7", + "src": "3116:26:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 802, + "id": 1017, "nodeType": "ExpressionStatement", - "src": "1161:9:7" + "src": "3116:26:7" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1019, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "3167:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1018, + "name": "VerifyApp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 765, + "src": "3157:9:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3157:17:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1021, + "nodeType": "EmitStatement", + "src": "3152:22:7" } ] }, - "functionSelector": "a920b78c", - "id": 804, + "functionSelector": "1805d79f", + "id": 1023, "implemented": true, "kind": "function", "modifiers": [ { - "id": 773, + "arguments": [ + { + "id": 1000, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "3027:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 1001, "kind": "modifierInvocation", "modifierName": { - "id": 772, - "name": "initializer", + "id": 999, + "name": "onlyRole", "nodeType": "IdentifierPath", - "referencedDeclaration": 44, - "src": "1000:11:7" + "referencedDeclaration": 86, + "src": "3018:8:7" }, "nodeType": "ModifierInvocation", - "src": "1000:11:7" + "src": "3018:20:7" } ], - "name": "initialize", - "nameLocation": "936:10:7", + "name": "verifyDApp", + "nameLocation": "2987:10:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 771, + "id": 998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 767, + "id": 997, "mutability": "mutable", - "name": "_amountToPay", - "nameLocation": "952:12:7", + "name": "_appID", + "nameLocation": "3003:6:7", "nodeType": "VariableDeclaration", - "scope": 804, - "src": "947:17:7", + "scope": 1023, + "src": "2998:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25306,251 +38349,326 @@ "typeString": "uint256" }, "typeName": { - "id": 766, + "id": 996, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "947:4:7", + "src": "2998:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" - }, - { - "constant": false, - "id": 770, - "mutability": "mutable", - "name": "admins", - "nameLocation": "985:6:7", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "966:25:7", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 768, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "966:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 769, - "nodeType": "ArrayTypeName", - "src": "966:9:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" } ], - "src": "946:46:7" + "src": "2997:13:7" }, "returnParameters": { - "id": 774, + "id": 1002, "nodeType": "ParameterList", "parameters": [], - "src": "1012:0:7" + "src": "3039:0:7" }, - "scope": 1058, - "src": "927:250:7", + "scope": 1102, + "src": "2978:203:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "canonicalName": "DAppStore.App", - "id": 815, - "members": [ - { - "constant": false, - "id": 806, - "mutability": "mutable", - "name": "appID", - "nameLocation": "1209:5:7", - "nodeType": "VariableDeclaration", - "scope": 815, - "src": "1204:10:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 805, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1204:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 808, - "mutability": "mutable", - "name": "appOwner", - "nameLocation": "1232:8:7", - "nodeType": "VariableDeclaration", - "scope": 815, - "src": "1224:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 807, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1224:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 810, - "mutability": "mutable", - "name": "appName", - "nameLocation": "1257:7:7", - "nodeType": "VariableDeclaration", - "scope": 815, - "src": "1250:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 809, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1250:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 812, - "mutability": "mutable", - "name": "appIPFSHash", - "nameLocation": "1281:11:7", - "nodeType": "VariableDeclaration", - "scope": 815, - "src": "1274:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 811, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1274:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 814, - "mutability": "mutable", - "name": "appAddData", - "nameLocation": "1309:10:7", - "nodeType": "VariableDeclaration", - "scope": 815, - "src": "1302:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 813, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1302:6:7", + "body": { + "id": 1032, + "nodeType": "Block", + "src": "3226:39:7", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 1029, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1025, + "src": "3251:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1028, + "name": "DeleteApp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 769, + "src": "3241:9:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3241:17:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1031, + "nodeType": "EmitStatement", + "src": "3236:22:7" + } + ] + }, + "functionSelector": "6df693d3", + "id": 1033, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deleteApp", + "nameLocation": "3196:9:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1025, + "mutability": "mutable", + "name": "_appID", + "nameLocation": "3211:6:7", + "nodeType": "VariableDeclaration", + "scope": 1033, + "src": "3206:11:7", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "App", - "nameLocation": "1190:3:7", - "nodeType": "StructDefinition", - "scope": 1058, - "src": "1183:143:7", + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1024, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3206:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3205:13:7" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3226:0:7" + }, + "scope": 1102, + "src": "3187:78:7", + "stateMutability": "nonpayable", + "virtual": false, "visibility": "public" }, { "body": { - "id": 877, + "id": 1056, "nodeType": "Block", - "src": "1444:404:7", + "src": "3336:109:7", "statements": [ { "expression": { - "id": 829, + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1041, + "name": "appOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 713, + "src": "3354:9:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1043, + "indexExpression": { + "id": 1042, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "3364:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3354:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1044, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3375:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3375:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3354:31:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f74206f776e6572", + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3387:11:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682", + "typeString": "literal_string \"Not owner\"" + }, + "value": "Not owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682", + "typeString": "literal_string \"Not owner\"" + } + ], + "id": 1040, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3346:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3346:53:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1049, + "nodeType": "ExpressionStatement", + "src": "3346:53:7" + }, + { + "expression": { + "id": 1054, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 824, + "id": 1050, "name": "appOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "1528:9:7", + "referencedDeclaration": 713, + "src": "3409:9:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 826, + "id": 1052, "indexExpression": { - "id": 825, - "name": "appID", + "id": 1051, + "name": "_appID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1538:5:7", + "referencedDeclaration": 1037, + "src": "3419:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25561,7 +38679,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1528:16:7", + "src": "3409:17:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25570,477 +38688,474 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "expression": { - "id": 827, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1547:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1547:10:7", + "id": 1053, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1035, + "src": "3429:9:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1528:29:7", + "src": "3409:29:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1055, + "nodeType": "ExpressionStatement", + "src": "3409:29:7" + } + ] + }, + "functionSelector": "e58cdd90", + "id": 1057, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferAppOwner", + "nameLocation": "3280:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1035, + "mutability": "mutable", + "name": "_newOwner", + "nameLocation": "3305:9:7", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "3297:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3297:7:7", + "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 830, - "nodeType": "ExpressionStatement", - "src": "1528:29:7" + "visibility": "internal" }, + { + "constant": false, + "id": 1037, + "mutability": "mutable", + "name": "_appID", + "nameLocation": "3321:6:7", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "3316:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1036, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3316:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3296:32:7" + }, + "returnParameters": { + "id": 1039, + "nodeType": "ParameterList", + "parameters": [], + "src": "3336:0:7" + }, + "scope": 1102, + "src": "3271:174:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1070, + "nodeType": "Block", + "src": "3520:49:7", + "statements": [ { "expression": { - "id": 835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 831, - "name": "appName", + "arguments": [ + { + "id": 1066, + "name": "ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "1567:7:7", + "referencedDeclaration": 701, + "src": "3540:10:7", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 833, - "indexExpression": { - "id": 832, - "name": "appID", + { + "id": 1067, + "name": "_newAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1575:5:7", + "referencedDeclaration": 1059, + "src": "3552:9:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1567:14:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 834, - "name": "_name", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1065, + "name": "grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "1584:5:7", + "referencedDeclaration": 205, + "src": "3530:9:7", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" } }, - "src": "1567:22:7", + "id": 1068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3530:32:7", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 836, + "id": 1069, "nodeType": "ExpressionStatement", - "src": "1567:22:7" + "src": "3530:32:7" + } + ] + }, + "functionSelector": "70480275", + "id": 1071, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 1062, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "3508:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 1063, + "kind": "modifierInvocation", + "modifierName": { + "id": 1061, + "name": "onlyRole", + "nodeType": "IdentifierPath", + "referencedDeclaration": 86, + "src": "3499:8:7" }, + "nodeType": "ModifierInvocation", + "src": "3499:20:7" + } + ], + "name": "addAdmin", + "nameLocation": "3464:8:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1060, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1059, + "mutability": "mutable", + "name": "_newAdmin", + "nameLocation": "3481:9:7", + "nodeType": "VariableDeclaration", + "scope": 1071, + "src": "3473:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1058, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3473:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3472:19:7" + }, + "returnParameters": { + "id": 1064, + "nodeType": "ParameterList", + "parameters": [], + "src": "3520:0:7" + }, + "scope": 1102, + "src": "3455:114:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1100, + "nodeType": "Block", + "src": "3669:182:7", + "statements": [ { "expression": { - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 837, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "1599:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 839, - "indexExpression": { - "id": 838, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1611:5:7", - "typeDescriptions": { + "arguments": [ + { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1599:18:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 840, - "name": "_ipfsHash", + }, + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1082, + "name": "_versionCode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1073, + "src": "3687:12:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1083, + "name": "versionCode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 707, + "src": "3700:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3687:24:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1081, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 819, - "src": "1620:9:7", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3679:7:7", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "src": "1599:30:7", + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3679:33:7", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 842, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "1599:30:7" + "src": "3679:33:7" }, { "expression": { - "id": 847, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "baseExpression": { - "id": 843, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "1639:10:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 845, - "indexExpression": { - "id": 844, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1650:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1639:17:7", + "id": 1087, + "name": "versionCode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 707, + "src": "3722:11:7", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 846, - "name": "_additionalData", + "id": 1088, + "name": "_versionCode", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 821, - "src": "1659:15:7", + "referencedDeclaration": 1073, + "src": "3736:12:7", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "1639:35:7", + "src": "3722:26:7", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 848, + "id": 1090, "nodeType": "ExpressionStatement", - "src": "1639:35:7" + "src": "3722:26:7" }, { "expression": { - "id": 854, + "id": 1093, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "baseExpression": { - "id": 849, - "name": "submitTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "1684:10:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 851, - "indexExpression": { - "id": 850, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1695:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1684:17:7", + "id": 1091, + "name": "currentDAppStoreIPFSHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 709, + "src": "3758:24:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "expression": { - "id": 852, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "1704:5:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "1704:15:7", + "id": 1092, + "name": "_ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1075, + "src": "3785:9:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } }, - "src": "1684:35:7", + "src": "3758:36:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 855, - "nodeType": "ExpressionStatement", - "src": "1684:35:7" - }, - { - "eventCall": { - "arguments": [ - { - "id": 857, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1741:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 858, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1748:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1748:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "baseExpression": { - "id": 860, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "1760:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 862, - "indexExpression": { - "id": 861, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1768:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1760:14:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 863, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "1776:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 865, - "indexExpression": { - "id": 864, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1788:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1776:18:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 866, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "1796:10:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 868, - "indexExpression": { - "id": 867, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1807:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1796:17:7", + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1094, + "nodeType": "ExpressionStatement", + "src": "3758:36:7" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1096, + "name": "versionCode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 707, + "src": "3821:11:7", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1097, + "name": "_ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1075, + "src": "3834:9:7", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } } ], @@ -26051,34 +39166,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } ], - "id": 856, - "name": "NewApp", + "id": 1095, + "name": "StoreUpdate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "1734:6:7", + "referencedDeclaration": 775, + "src": "3809:11:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory,string memory,string memory)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,string memory)" } }, - "id": 869, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, @@ -26086,713 +39189,668 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1734:80:7", + "src": "3809:35:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 870, + "id": 1099, "nodeType": "EmitStatement", - "src": "1729:85:7" + "src": "3804:40:7" + } + ] + }, + "functionSelector": "1c7828bb", + "id": 1101, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 1078, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "3657:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 1079, + "kind": "modifierInvocation", + "modifierName": { + "id": 1077, + "name": "onlyRole", + "nodeType": "IdentifierPath", + "referencedDeclaration": 86, + "src": "3648:8:7" }, + "nodeType": "ModifierInvocation", + "src": "3648:20:7" + } + ], + "name": "updateStore", + "nameLocation": "3583:11:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1076, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "id": 875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 871, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1824:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 872, - "name": "appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "1832:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1840:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1832:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1824:17:7", + "constant": false, + "id": 1073, + "mutability": "mutable", + "name": "_versionCode", + "nameLocation": "3600:12:7", + "nodeType": "VariableDeclaration", + "scope": 1101, + "src": "3595:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1072, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3595:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 876, - "nodeType": "ExpressionStatement", - "src": "1824:17:7" + "visibility": "internal" + }, + { + "constant": false, + "id": 1075, + "mutability": "mutable", + "name": "_ipfsHash", + "nameLocation": "3630:9:7", + "nodeType": "VariableDeclaration", + "scope": 1101, + "src": "3614:25:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1074, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3614:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3594:46:7" + }, + "returnParameters": { + "id": 1080, + "nodeType": "ParameterList", + "parameters": [], + "src": "3669:0:7" + }, + "scope": 1102, + "src": "3574:277:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1103, + "src": "198:3655:7", + "usedErrors": [] + } + ], + "src": "37:3817:7" + }, + "id": 7 + }, + "contracts/NotUpgradableStore.sol": { + "ast": { + "absolutePath": "contracts/NotUpgradableStore.sol", + "exportedSymbols": { + "NotUpgradableStore": [ + 1367 + ] + }, + "id": 1368, + "license": "Unlicense", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1104, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "37:23:8" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "NotUpgradableStore", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1367, + "linearizedBaseContracts": [ + 1367 + ], + "name": "NotUpgradableStore", + "nameLocation": "72:18:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "8da5cb5b", + "id": 1106, + "mutability": "mutable", + "name": "owner", + "nameLocation": "151:5:8", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "136:20:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1105, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "136:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f9a6cbae", + "id": 1108, + "mutability": "mutable", + "name": "appID", + "nameLocation": "177:5:8", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "162:20:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ba13680", + "id": 1110, + "mutability": "mutable", + "name": "amountToPay", + "nameLocation": "200:11:8", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "188:23:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1109, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "188:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 1114, + "mutability": "mutable", + "name": "appOwners", + "nameLocation": "242:9:8", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "217:34:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 1113, + "keyType": { + "id": 1111, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "225:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] + }, + "nodeType": "Mapping", + "src": "217:24:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 1112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "233:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } }, - "functionSelector": "e73173a4", - "id": 878, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "submitDApp", - "nameLocation": "1341:10:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 822, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 817, - "mutability": "mutable", - "name": "_name", - "nameLocation": "1366:5:7", - "nodeType": "VariableDeclaration", - "scope": 878, - "src": "1352:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 816, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1352:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 819, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "1387:9:7", - "nodeType": "VariableDeclaration", - "scope": 878, - "src": "1373:23:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 818, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1373:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 821, - "mutability": "mutable", - "name": "_additionalData", - "nameLocation": "1412:15:7", - "nodeType": "VariableDeclaration", - "scope": 878, - "src": "1398:29:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 820, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1398:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" + "visibility": "internal" + }, + { + "constant": false, + "id": 1118, + "mutability": "mutable", + "name": "appName", + "nameLocation": "281:7:8", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "257:31:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 1117, + "keyType": { + "id": 1115, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "265:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "257:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "273:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1122, + "mutability": "mutable", + "name": "appIPFSHash", + "nameLocation": "318:11:8", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "294:35:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 1121, + "keyType": { + "id": 1119, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "302:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "294:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 1120, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "310:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1126, + "mutability": "mutable", + "name": "appAddData", + "nameLocation": "359:10:8", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "335:34:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 1125, + "keyType": { + "id": 1123, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "343:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "335:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 1124, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "351:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1130, + "mutability": "mutable", + "name": "submitTime", + "nameLocation": "397:10:8", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "375:32:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 1129, + "keyType": { + "id": 1127, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "383:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "375:21:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 1128, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "391:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "src": "1351:77:7" - }, - "returnParameters": { - "id": 823, - "nodeType": "ParameterList", - "parameters": [], - "src": "1444:0:7" + } }, - "scope": 1058, - "src": "1332:516:7", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" + "visibility": "internal" }, { - "body": { - "id": 926, - "nodeType": "Block", - "src": "1971:277:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 890, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "1989:9:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 892, - "indexExpression": { - "id": 891, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "1999:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1989:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 893, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2010:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2010:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1989:31:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4e6f74206f776e6572206f662064617070", - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2022:19:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - }, - "value": "Not owner of dapp" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" - } - ], - "id": 889, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1981:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1981:61:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 898, - "nodeType": "ExpressionStatement", - "src": "1981:61:7" - }, + "anonymous": false, + "id": 1142, + "name": "NewApp", + "nameLocation": "420:6:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "id": 903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 899, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "2052:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 901, - "indexExpression": { - "id": 900, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "2060:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2052:15:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 902, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "2070:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2052:23:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } + "constant": false, + "id": 1132, + "indexed": false, + "mutability": "mutable", + "name": "appID", + "nameLocation": "432:5:8", + "nodeType": "VariableDeclaration", + "scope": 1142, + "src": "427:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 904, - "nodeType": "ExpressionStatement", - "src": "2052:23:7" - }, - { - "expression": { - "id": 909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 905, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "2085:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 907, - "indexExpression": { - "id": 906, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "2097:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2085:19:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 908, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "2107:9:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2085:31:7", + "typeName": { + "id": 1131, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "427:4:8", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 910, - "nodeType": "ExpressionStatement", - "src": "2085:31:7" + "visibility": "internal" }, { - "expression": { - "id": 915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 911, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "2126:10:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 913, - "indexExpression": { - "id": 912, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "2137:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2126:18:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 914, - "name": "_additionalData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "2147:15:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2126:36:7", + "constant": false, + "id": 1134, + "indexed": false, + "mutability": "mutable", + "name": "appOwner", + "nameLocation": "447:8:8", + "nodeType": "VariableDeclaration", + "scope": 1142, + "src": "439:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1133, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "439:7:8", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 916, - "nodeType": "ExpressionStatement", - "src": "2126:36:7" + "visibility": "internal" }, { - "eventCall": { - "arguments": [ - { - "id": 918, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "2187:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2195:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2195:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 921, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "2207:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 922, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "2214:9:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 923, - "name": "_additionalData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "2225:15:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 917, - "name": "UpdateApp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "2177:9:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory,string memory,string memory)" - } - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2177:64:7", - "tryCall": false, + "constant": false, + "id": 1136, + "indexed": false, + "mutability": "mutable", + "name": "appName", + "nameLocation": "464:7:8", + "nodeType": "VariableDeclaration", + "scope": 1142, + "src": "457:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1135, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "457:6:8", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "id": 925, - "nodeType": "EmitStatement", - "src": "2172:69:7" + "visibility": "internal" + }, + { + "constant": false, + "id": 1138, + "indexed": false, + "mutability": "mutable", + "name": "appIPFSHash", + "nameLocation": "480:11:8", + "nodeType": "VariableDeclaration", + "scope": 1142, + "src": "473:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1137, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "473:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1140, + "indexed": false, + "mutability": "mutable", + "name": "appAddData", + "nameLocation": "500:10:8", + "nodeType": "VariableDeclaration", + "scope": 1142, + "src": "493:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1139, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "493:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" } - ] + ], + "src": "426:85:8" }, - "functionSelector": "ab444f28", - "id": 927, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "updateDApp", - "nameLocation": "1863:10:7", - "nodeType": "FunctionDefinition", + "src": "414:98:8" + }, + { + "anonymous": false, + "id": 1154, + "name": "UpdateApp", + "nameLocation": "523:9:8", + "nodeType": "EventDefinition", "parameters": { - "id": 887, + "id": 1153, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 880, + "id": 1144, + "indexed": false, "mutability": "mutable", - "name": "_appID", - "nameLocation": "1879:6:7", + "name": "appID", + "nameLocation": "538:5:8", "nodeType": "VariableDeclaration", - "scope": 927, - "src": "1874:11:7", + "scope": 1154, + "src": "533:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26800,10 +39858,10 @@ "typeString": "uint256" }, "typeName": { - "id": 879, + "id": 1143, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1874:4:7", + "src": "533:4:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26813,24 +39871,54 @@ }, { "constant": false, - "id": 882, + "id": 1146, + "indexed": false, "mutability": "mutable", - "name": "_name", - "nameLocation": "1901:5:7", + "name": "appOwner", + "nameLocation": "553:8:8", "nodeType": "VariableDeclaration", - "scope": 927, - "src": "1887:19:7", + "scope": 1154, + "src": "545:16:8", "stateVariable": false, - "storageLocation": "memory", + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1145, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "545:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1148, + "indexed": false, + "mutability": "mutable", + "name": "appName", + "nameLocation": "570:7:8", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "563:14:8", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { - "id": 881, + "id": 1147, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1887:6:7", + "src": "563:6:8", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -26840,24 +39928,25 @@ }, { "constant": false, - "id": 884, + "id": 1150, + "indexed": false, "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "1922:9:7", + "name": "appIPFSHash", + "nameLocation": "586:11:8", "nodeType": "VariableDeclaration", - "scope": 927, - "src": "1908:23:7", + "scope": 1154, + "src": "579:18:8", "stateVariable": false, - "storageLocation": "memory", + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { - "id": 883, + "id": 1149, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1908:6:7", + "src": "579:6:8", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -26867,24 +39956,25 @@ }, { "constant": false, - "id": 886, + "id": 1152, + "indexed": false, "mutability": "mutable", - "name": "_additionalData", - "nameLocation": "1947:15:7", + "name": "appAddData", + "nameLocation": "606:10:8", "nodeType": "VariableDeclaration", - "scope": 927, - "src": "1933:29:7", + "scope": 1154, + "src": "599:17:8", "stateVariable": false, - "storageLocation": "memory", + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { - "id": 885, + "id": 1151, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1933:6:7", + "src": "599:6:8", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -26893,267 +39983,332 @@ "visibility": "internal" } ], - "src": "1873:90:7" + "src": "532:85:8" }, - "returnParameters": { - "id": 888, - "nodeType": "ParameterList", - "parameters": [], - "src": "1971:0:7" - }, - "scope": 1058, - "src": "1854:394:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" + "src": "517:101:8" }, { "body": { - "id": 951, + "id": 1165, "nodeType": "Block", - "src": "2322:112:7", + "src": "644:71:8", "statements": [ { "expression": { "arguments": [ { - "id": 936, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2343:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 937, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "2351:9:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 939, - "indexExpression": { - "id": 938, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2361:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2351:17:7", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_address", "typeString": "address" - } - }, - { - "baseExpression": { - "id": 940, - "name": "appName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "2370:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 942, - "indexExpression": { - "id": 941, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2378:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } }, + "id": 1160, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2370:15:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "baseExpression": { - "id": 943, - "name": "appIPFSHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "2387:11:7", + "leftExpression": { + "expression": { + "id": 1157, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "663:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "663:10:8", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 945, - "indexExpression": { - "id": 944, - "name": "_appID", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1159, + "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2399:6:7", + "referencedDeclaration": 1106, + "src": "677:5:8", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2387:19:7", + "src": "663:19:8", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, { - "baseExpression": { - "id": 946, - "name": "appAddData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "2408:10:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 948, - "indexExpression": { - "id": 947, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2419:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "hexValue": "4f6e6c79206f776e6572", + "id": 1161, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "string", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2408:18:7", + "nodeType": "Literal", + "src": "684:12:8", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } + "typeIdentifier": "t_stringliteral_17d9f114efaa93d67eedad749dd7fd16a6895ff93e28b7a30c667a069f2ed42d", + "typeString": "literal_string \"Only owner\"" + }, + "value": "Only owner" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_bool", + "typeString": "bool" }, { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_stringliteral_17d9f114efaa93d67eedad749dd7fd16a6895ff93e28b7a30c667a069f2ed42d", + "typeString": "literal_string \"Only owner\"" } ], - "id": 935, - "name": "App", + "id": 1156, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "654:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "654:43:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1163, + "nodeType": "ExpressionStatement", + "src": "654:43:8" + }, + { + "id": 1164, + "nodeType": "PlaceholderStatement", + "src": "707:1:8" + } + ] + }, + "id": 1166, + "name": "_onlyOwner", + "nameLocation": "633:10:8", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1155, + "nodeType": "ParameterList", + "parameters": [], + "src": "644:0:8" + }, + "src": "624:91:8", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1184, + "nodeType": "Block", + "src": "753:90:8", + "statements": [ + { + "expression": { + "id": 1173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1171, + "name": "amountToPay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 815, - "src": "2339:3:7", + "referencedDeclaration": 1110, + "src": "763:11:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_App_$815_storage_ptr_$", - "typeString": "type(struct DAppStore.App storage pointer)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1172, + "name": "_amountToPay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "777:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 949, + "src": "763:26:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1174, + "nodeType": "ExpressionStatement", + "src": "763:26:8" + }, + { + "expression": { + "id": 1178, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "structConstructorCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2339:88:7", - "tryCall": false, + "leftHandSide": { + "id": 1175, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1106, + "src": "799:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 1176, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "807:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "807:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "799:18:8", "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$815_memory_ptr", - "typeString": "struct DAppStore.App memory" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "functionReturnParameters": 934, - "id": 950, - "nodeType": "Return", - "src": "2332:95:7" + "id": 1179, + "nodeType": "ExpressionStatement", + "src": "799:18:8" + }, + { + "expression": { + "id": 1182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1180, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "827:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 1181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "835:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "827:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1183, + "nodeType": "ExpressionStatement", + "src": "827:9:8" } ] }, - "functionSelector": "887e4b86", - "id": 952, + "id": 1185, "implemented": true, - "kind": "function", + "kind": "constructor", "modifiers": [], - "name": "getDAppData", - "nameLocation": "2263:11:7", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 930, + "id": 1169, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 929, + "id": 1168, "mutability": "mutable", - "name": "_appID", - "nameLocation": "2280:6:7", + "name": "_amountToPay", + "nameLocation": "739:12:8", "nodeType": "VariableDeclaration", - "scope": 952, - "src": "2275:11:7", + "scope": 1185, + "src": "734:17:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27161,10 +40316,10 @@ "typeString": "uint256" }, "typeName": { - "id": 928, + "id": 1167, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2275:4:7", + "src": "734:4:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27173,160 +40328,248 @@ "visibility": "internal" } ], - "src": "2274:13:7" + "src": "733:19:8" }, "returnParameters": { - "id": 934, + "id": 1170, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 933, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "2310:10:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$815_memory_ptr", - "typeString": "struct DAppStore.App" - }, - "typeName": { - "id": 932, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 931, - "name": "App", - "nodeType": "IdentifierPath", - "referencedDeclaration": 815, - "src": "2310:3:7" - }, - "referencedDeclaration": 815, - "src": "2310:3:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_App_$815_storage_ptr", - "typeString": "struct DAppStore.App" - } - }, - "visibility": "internal" - } - ], - "src": "2309:12:7" + "parameters": [], + "src": "753:0:8" }, - "scope": 1058, - "src": "2254:180:7", - "stateMutability": "view", + "scope": 1367, + "src": "721:122:8", + "stateMutability": "nonpayable", "virtual": false, - "visibility": "external" + "visibility": "public" + }, + { + "canonicalName": "NotUpgradableStore.App", + "id": 1196, + "members": [ + { + "constant": false, + "id": 1187, + "mutability": "mutable", + "name": "appID", + "nameLocation": "875:5:8", + "nodeType": "VariableDeclaration", + "scope": 1196, + "src": "870:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1186, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "870:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1189, + "mutability": "mutable", + "name": "appOwner", + "nameLocation": "898:8:8", + "nodeType": "VariableDeclaration", + "scope": 1196, + "src": "890:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1188, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "890:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "appName", + "nameLocation": "923:7:8", + "nodeType": "VariableDeclaration", + "scope": 1196, + "src": "916:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1190, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "916:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "appIPFSHash", + "nameLocation": "947:11:8", + "nodeType": "VariableDeclaration", + "scope": 1196, + "src": "940:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1192, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "940:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1195, + "mutability": "mutable", + "name": "appAddData", + "nameLocation": "975:10:8", + "nodeType": "VariableDeclaration", + "scope": 1196, + "src": "968:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1194, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "968:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "App", + "nameLocation": "856:3:8", + "nodeType": "StructDefinition", + "scope": 1367, + "src": "849:143:8", + "visibility": "public" }, { "body": { - "id": 980, + "id": 1251, "nodeType": "Block", - "src": "2481:342:7", + "src": "1110:307:8", "statements": [ { "expression": { "arguments": [ { "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 963, + "id": 1209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "baseExpression": { - "id": 958, - "name": "appOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "2499:9:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 960, - "indexExpression": { - "id": 959, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 954, - "src": "2509:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2499:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { "expression": { - "id": 961, + "id": 1206, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2520:3:7", + "src": "1128:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 962, + "id": 1207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "value", "nodeType": "MemberAccess", - "src": "2520:10:7", + "src": "1128:9:8", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1208, + "name": "amountToPay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1110, + "src": "1141:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "2499:31:7", + "src": "1128:24:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "hexValue": "4e6f74206f776e6572206f662064617070", - "id": 964, + "hexValue": "457468657220666f72206c6f636b7570207265717569726564", + "id": 1210, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2532:19:7", + "src": "1154:27:8", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" + "typeIdentifier": "t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948", + "typeString": "literal_string \"Ether for lockup required\"" }, - "value": "Not owner of dapp" + "value": "Ether for lockup required" } ], "expression": { @@ -27336,11 +40579,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", - "typeString": "literal_string \"Not owner of dapp\"" + "typeIdentifier": "t_stringliteral_4e982db115162a602e96df074c774b38bc00df55ec0f191c61c331bf5ae08948", + "typeString": "literal_string \"Ether for lockup required\"" } ], - "id": 957, + "id": 1205, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -27348,13 +40591,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2491:7:7", + "src": "1120:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 965, + "id": 1211, "isConstant": false, "isLValue": false, "isPure": false, @@ -27362,293 +40605,612 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2491:61:7", + "src": "1120:62:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 966, + "id": 1212, "nodeType": "ExpressionStatement", - "src": "2491:61:7" + "src": "1120:62:8" }, { - "documentation": "The test-version on rinkeby does check for 48h passed.", - "eventCall": { - "arguments": [ - { - "id": 968, - "name": "_appID", + "expression": { + "id": 1218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1213, + "name": "appOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "1192:9:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1215, + "indexExpression": { + "id": 1214, + "name": "appID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 954, - "src": "2758:6:7", + "referencedDeclaration": 1108, + "src": "1202:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1192:16:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "expression": { - "argumentTypes": [ - { + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 1216, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1211:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1211:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1192:29:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1219, + "nodeType": "ExpressionStatement", + "src": "1192:29:8" + }, + { + "expression": { + "id": 1224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1220, + "name": "appName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "1231:7:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1222, + "indexExpression": { + "id": 1221, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "1239:5:8", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 967, - "name": "ReleaseApp", + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1231:14:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1223, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1198, + "src": "1248:5:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1231:22:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1225, + "nodeType": "ExpressionStatement", + "src": "1231:22:8" + }, + { + "expression": { + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1226, + "name": "appIPFSHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1122, + "src": "1263:11:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1228, + "indexExpression": { + "id": 1227, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "1275:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1263:18:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1229, + "name": "_ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "1284:9:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1263:30:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1231, + "nodeType": "ExpressionStatement", + "src": "1263:30:8" + }, + { + "expression": { + "id": 1236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1232, + "name": "appAddData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "1303:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1234, + "indexExpression": { + "id": 1233, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "1314:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1303:17:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1235, + "name": "_additionalData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "2747:10:7", + "referencedDeclaration": 1202, + "src": "1323:15:8", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, - "id": 969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2747:18:7", - "tryCall": false, + "src": "1303:35:8", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, - "id": 970, - "nodeType": "EmitStatement", - "src": "2742:23:7" + "id": 1237, + "nodeType": "ExpressionStatement", + "src": "1303:35:8" }, { "expression": { - "arguments": [ - { - "id": 977, - "name": "amountToPay", + "id": 1243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1238, + "name": "submitTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 705, - "src": "2804:11:7", + "referencedDeclaration": 1130, + "src": "1348:10:8", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" } - } - ], - "expression": { - "argumentTypes": [ - { + }, + "id": 1240, + "indexExpression": { + "id": 1239, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "1359:5:8", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1348:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "expression": { - "arguments": [ - { - "expression": { - "id": 973, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2783:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2783:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2775:8:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 971, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2775:8:7", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2775:19:7", - "tryCall": false, + "id": 1241, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1368:5:8", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_magic_block", + "typeString": "block" } }, - "id": 976, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transfer", + "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "2775:28:7", + "src": "1368:15:8", "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 978, + "src": "1348:35:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1244, + "nodeType": "ExpressionStatement", + "src": "1348:35:8" + }, + { + "expression": { + "id": 1249, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2775:41:7", - "tryCall": false, + "leftHandSide": { + "id": 1245, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "1393:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1246, + "name": "appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "1401:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1409:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1401:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1393:17:8", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 979, + "id": 1250, "nodeType": "ExpressionStatement", - "src": "2775:41:7" + "src": "1393:17:8" } ] }, - "functionSelector": "5cadd4a9", - "id": 981, + "functionSelector": "e73173a4", + "id": 1252, "implemented": true, "kind": "function", "modifiers": [], - "name": "releaseDApp", - "nameLocation": "2449:11:7", + "name": "submitDApp", + "nameLocation": "1007:10:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 955, + "id": 1203, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 954, + "id": 1198, "mutability": "mutable", - "name": "_appID", - "nameLocation": "2466:6:7", + "name": "_name", + "nameLocation": "1032:5:8", "nodeType": "VariableDeclaration", - "scope": 981, - "src": "2461:11:7", + "scope": 1252, + "src": "1018:19:8", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1197, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1018:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1200, + "mutability": "mutable", + "name": "_ipfsHash", + "nameLocation": "1053:9:8", + "nodeType": "VariableDeclaration", + "scope": 1252, + "src": "1039:23:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1199, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1039:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1202, + "mutability": "mutable", + "name": "_additionalData", + "nameLocation": "1078:15:8", + "nodeType": "VariableDeclaration", + "scope": 1252, + "src": "1064:29:8", + "stateVariable": false, + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 953, - "name": "uint", + "id": 1201, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "2461:4:7", + "src": "1064:6:8", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" } ], - "src": "2460:13:7" + "src": "1017:77:8" }, "returnParameters": { - "id": 956, + "id": 1204, "nodeType": "ParameterList", "parameters": [], - "src": "2481:0:7" + "src": "1110:0:8" }, - "scope": 1058, - "src": "2440:383:7", - "stateMutability": "nonpayable", + "scope": 1367, + "src": "998:419:8", + "stateMutability": "payable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1008, + "id": 1300, "nodeType": "Block", - "src": "2890:142:7", + "src": "1540:277:8", "statements": [ { "expression": { "arguments": [ { "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 994, + "id": 1269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 990, - "name": "appVerified", + "id": 1264, + "name": "appOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 729, - "src": "2908:11:7", + "referencedDeclaration": 1114, + "src": "1558:9:8", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" } }, - "id": 992, + "id": 1266, "indexExpression": { - "id": 991, + "id": 1265, "name": "_appID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2920:6:7", + "referencedDeclaration": 1254, + "src": "1568:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27659,51 +41221,61 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2908:19:7", + "src": "1558:17:8", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "hexValue": "66616c7365", - "id": 993, + "expression": { + "id": 1267, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1579:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1268, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "bool", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "2931:5:7", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1579:10:8", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "src": "2908:28:7", + "src": "1558:31:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "hexValue": "416c7265616479207665726966696564", - "id": 995, + "hexValue": "4e6f74206f776e6572206f662064617070", + "id": 1270, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2938:18:7", + "src": "1591:19:8", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5", - "typeString": "literal_string \"Already verified\"" + "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", + "typeString": "literal_string \"Not owner of dapp\"" }, - "value": "Already verified" + "value": "Not owner of dapp" } ], "expression": { @@ -27713,11 +41285,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_620197639499e2d4278f371c8ec7052e8daf3f03300c799eca58b1cba1de89c5", - "typeString": "literal_string \"Already verified\"" + "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", + "typeString": "literal_string \"Not owner of dapp\"" } ], - "id": 989, + "id": 1263, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -27725,13 +41297,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2900:7:7", + "src": "1550:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 996, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": false, @@ -27739,102 +41311,296 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2900:57:7", + "src": "1550:61:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 997, + "id": 1272, "nodeType": "ExpressionStatement", - "src": "2900:57:7" + "src": "1550:61:8" }, { "expression": { - "id": 1002, + "id": 1277, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 998, - "name": "appVerified", + "id": 1273, + "name": "appName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 729, - "src": "2967:11:7", + "referencedDeclaration": 1118, + "src": "1621:7:8", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1275, + "indexExpression": { + "id": 1274, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "1629:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1621:15:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1276, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "1639:5:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1621:23:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1278, + "nodeType": "ExpressionStatement", + "src": "1621:23:8" + }, + { + "expression": { + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1279, + "name": "appIPFSHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1122, + "src": "1654:11:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1281, + "indexExpression": { + "id": 1280, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "1666:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1654:19:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1282, + "name": "_ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1258, + "src": "1676:9:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1654:31:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1284, + "nodeType": "ExpressionStatement", + "src": "1654:31:8" + }, + { + "expression": { + "id": 1289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1285, + "name": "appAddData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "1695:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" } }, - "id": 1000, + "id": 1287, "indexExpression": { - "id": 999, + "id": 1286, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "1706:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1695:18:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1288, + "name": "_additionalData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "1716:15:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1695:36:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1290, + "nodeType": "ExpressionStatement", + "src": "1695:36:8" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1292, "name": "_appID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2979:6:7", + "referencedDeclaration": 1254, + "src": "1756:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1293, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1764:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1764:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1295, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "1776:5:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 1296, + "name": "_ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1258, + "src": "1783:9:8", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2967:19:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 1001, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2989:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2967:26:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1003, - "nodeType": "ExpressionStatement", - "src": "2967:26:7" - }, - { - "eventCall": { - "arguments": [ { - "id": 1005, - "name": "_appID", + "id": 1297, + "name": "_additionalData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "3018:6:7", + "referencedDeclaration": 1260, + "src": "1794:15:8", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } } ], @@ -27843,20 +41609,36 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } ], - "id": 1004, - "name": "VerifyApp", + "id": 1291, + "name": "UpdateApp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "3008:9:7", + "referencedDeclaration": 1154, + "src": "1746:9:8", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,string memory,string memory,string memory)" } }, - "id": 1006, + "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, @@ -27864,68 +41646,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3008:17:7", + "src": "1746:64:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1007, + "id": 1299, "nodeType": "EmitStatement", - "src": "3003:22:7" + "src": "1741:69:8" } ] }, - "functionSelector": "1805d79f", - "id": 1009, + "functionSelector": "ab444f28", + "id": 1301, "implemented": true, "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 986, - "name": "ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "2878:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 987, - "kind": "modifierInvocation", - "modifierName": { - "id": 985, - "name": "onlyRole", - "nodeType": "IdentifierPath", - "referencedDeclaration": 86, - "src": "2869:8:7" - }, - "nodeType": "ModifierInvocation", - "src": "2869:20:7" - } - ], - "name": "verifyDApp", - "nameLocation": "2838:10:7", + "modifiers": [], + "name": "updateDApp", + "nameLocation": "1432:10:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 984, + "id": 1261, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 983, + "id": 1254, "mutability": "mutable", "name": "_appID", - "nameLocation": "2854:6:7", + "nameLocation": "1448:6:8", "nodeType": "VariableDeclaration", - "scope": 1009, - "src": "2849:11:7", + "scope": 1301, + "src": "1443:11:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27933,51 +41687,280 @@ "typeString": "uint256" }, "typeName": { - "id": 982, + "id": 1253, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2849:4:7", + "src": "1443:4:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" + }, + { + "constant": false, + "id": 1256, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1470:5:8", + "nodeType": "VariableDeclaration", + "scope": 1301, + "src": "1456:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1255, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1258, + "mutability": "mutable", + "name": "_ipfsHash", + "nameLocation": "1491:9:8", + "nodeType": "VariableDeclaration", + "scope": 1301, + "src": "1477:23:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1257, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1477:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1260, + "mutability": "mutable", + "name": "_additionalData", + "nameLocation": "1516:15:8", + "nodeType": "VariableDeclaration", + "scope": 1301, + "src": "1502:29:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1259, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1502:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" } ], - "src": "2848:13:7" + "src": "1442:90:8" }, "returnParameters": { - "id": 988, + "id": 1262, "nodeType": "ParameterList", "parameters": [], - "src": "2890:0:7" + "src": "1540:0:8" }, - "scope": 1058, - "src": "2829:203:7", + "scope": 1367, + "src": "1423:394:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1018, + "id": 1325, "nodeType": "Block", - "src": "3077:39:7", + "src": "1891:112:8", "statements": [ { - "eventCall": { + "expression": { "arguments": [ { - "id": 1015, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1011, - "src": "3102:6:7", + "id": 1310, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1303, + "src": "1912:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 1311, + "name": "appOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "1920:9:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1313, + "indexExpression": { + "id": 1312, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1303, + "src": "1930:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1920:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1314, + "name": "appName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "1939:7:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1316, + "indexExpression": { + "id": 1315, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1303, + "src": "1947:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1939:15:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "baseExpression": { + "id": 1317, + "name": "appIPFSHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1122, + "src": "1956:11:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1319, + "indexExpression": { + "id": 1318, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1303, + "src": "1968:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1956:19:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "baseExpression": { + "id": 1320, + "name": "appAddData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "1977:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1322, + "indexExpression": { + "id": 1321, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1303, + "src": "1988:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1977:18:8", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } } ], @@ -27986,61 +41969,78 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } ], - "id": 1014, - "name": "DeleteApp", + "id": 1309, + "name": "App", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "3092:9:7", + "referencedDeclaration": 1196, + "src": "1908:3:8", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_type$_t_struct$_App_$1196_storage_ptr_$", + "typeString": "type(struct NotUpgradableStore.App storage pointer)" } }, - "id": 1016, + "id": 1323, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3092:17:7", + "src": "1908:88:8", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_App_$1196_memory_ptr", + "typeString": "struct NotUpgradableStore.App memory" } }, - "id": 1017, - "nodeType": "EmitStatement", - "src": "3087:22:7" + "functionReturnParameters": 1308, + "id": 1324, + "nodeType": "Return", + "src": "1901:95:8" } ] }, - "functionSelector": "6df693d3", - "id": 1019, + "functionSelector": "887e4b86", + "id": 1326, "implemented": true, "kind": "function", "modifiers": [], - "name": "deleteApp", - "nameLocation": "3047:9:7", + "name": "getDAppData", + "nameLocation": "1832:11:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1012, + "id": 1304, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1011, + "id": 1303, "mutability": "mutable", "name": "_appID", - "nameLocation": "3062:6:7", + "nameLocation": "1849:6:8", "nodeType": "VariableDeclaration", - "scope": 1019, - "src": "3057:11:7", + "scope": 1326, + "src": "1844:11:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28048,10 +42048,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1010, + "id": 1302, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3057:4:7", + "src": "1844:4:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28060,25 +42060,60 @@ "visibility": "internal" } ], - "src": "3056:13:7" + "src": "1843:13:8" }, "returnParameters": { - "id": 1013, + "id": 1308, "nodeType": "ParameterList", - "parameters": [], - "src": "3077:0:7" + "parameters": [ + { + "constant": false, + "id": 1307, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "1879:10:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_App_$1196_memory_ptr", + "typeString": "struct NotUpgradableStore.App" + }, + "typeName": { + "id": 1306, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1305, + "name": "App", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1196, + "src": "1879:3:8" + }, + "referencedDeclaration": 1196, + "src": "1879:3:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_App_$1196_storage_ptr", + "typeString": "struct NotUpgradableStore.App" + } + }, + "visibility": "internal" + } + ], + "src": "1878:12:8" }, - "scope": 1058, - "src": "3038:78:7", - "stateMutability": "nonpayable", + "scope": 1367, + "src": "1823:180:8", + "stateMutability": "view", "virtual": false, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 1042, + "id": 1365, "nodeType": "Block", - "src": "3187:109:7", + "src": "2050:408:8", "statements": [ { "expression": { @@ -28088,32 +42123,32 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1032, + "id": 1337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 1027, + "id": 1332, "name": "appOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "3205:9:7", + "referencedDeclaration": 1114, + "src": "2068:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 1029, + "id": 1334, "indexExpression": { - "id": 1028, + "id": 1333, "name": "_appID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "3215:6:7", + "referencedDeclaration": 1328, + "src": "2078:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28124,7 +42159,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3205:17:7", + "src": "2068:17:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28134,51 +42169,51 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1030, + "id": 1335, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "3226:3:7", + "src": "2089:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1031, + "id": 1336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "3226:10:7", + "src": "2089:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3205:31:7", + "src": "2068:31:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "hexValue": "4e6f74206f776e6572", - "id": 1033, + "hexValue": "4e6f74206f776e6572206f662064617070", + "id": 1338, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3238:11:7", + "src": "2101:19:8", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682", - "typeString": "literal_string \"Not owner\"" + "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", + "typeString": "literal_string \"Not owner of dapp\"" }, - "value": "Not owner" + "value": "Not owner of dapp" } ], "expression": { @@ -28188,11 +42223,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_c266efca4f4ed37612271196433531dcbb4fca89a694d568d1e290e32feb1682", - "typeString": "literal_string \"Not owner\"" + "typeIdentifier": "t_stringliteral_4618eeed5be7a8a06c37b58d285a7c20845fa70ab04cef336f7890be045f8ff5", + "typeString": "literal_string \"Not owner of dapp\"" } ], - "id": 1026, + "id": 1331, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -28200,13 +42235,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3197:7:7", + "src": "2060:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1034, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": false, @@ -28214,226 +42249,332 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3197:53:7", + "src": "2060:61:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1035, + "id": 1340, "nodeType": "ExpressionStatement", - "src": "3197:53:7" + "src": "2060:61:8" }, { - "expression": { - "id": 1040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1036, - "name": "appOwners", + "documentation": "The test-version on rinkeby does check for 48h passed.", + "eventCall": { + "arguments": [ + { + "id": 1342, + "name": "_appID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "3260:9:7", + "referencedDeclaration": 1328, + "src": "2323:6:8", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1038, - "indexExpression": { - "id": 1037, - "name": "_appID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "3270:6:7", + { + "expression": { + "id": 1343, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2331:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2331:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1345, + "name": "appName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "2343:7:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1347, + "indexExpression": { + "id": 1346, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1328, + "src": "2351:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2343:15:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "baseExpression": { + "id": 1348, + "name": "appIPFSHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1122, + "src": "2360:11:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1350, + "indexExpression": { + "id": 1349, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1328, + "src": "2372:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2360:19:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "baseExpression": { + "id": 1351, + "name": "appAddData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "2381:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1353, + "indexExpression": { + "id": 1352, + "name": "_appID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1328, + "src": "2392:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2381:18:8", "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3260:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 1039, - "name": "_newOwner", + ], + "id": 1341, + "name": "NewApp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "3280:9:7", + "referencedDeclaration": 1142, + "src": "2316:6:8", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,string memory,string memory,string memory)" } }, - "src": "3260:29:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1041, - "nodeType": "ExpressionStatement", - "src": "3260:29:7" - } - ] - }, - "functionSelector": "e58cdd90", - "id": 1043, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferAppOwner", - "nameLocation": "3131:16:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1021, - "mutability": "mutable", - "name": "_newOwner", - "nameLocation": "3156:9:7", - "nodeType": "VariableDeclaration", - "scope": 1043, - "src": "3148:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1020, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3148:7:7", - "stateMutability": "nonpayable", + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2316:84:8", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "visibility": "internal" + "id": 1355, + "nodeType": "EmitStatement", + "src": "2311:89:8" }, - { - "constant": false, - "id": 1023, - "mutability": "mutable", - "name": "_appID", - "nameLocation": "3172:6:7", - "nodeType": "VariableDeclaration", - "scope": 1043, - "src": "3167:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1022, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3167:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3147:32:7" - }, - "returnParameters": { - "id": 1025, - "nodeType": "ParameterList", - "parameters": [], - "src": "3187:0:7" - }, - "scope": 1058, - "src": "3122:174:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "3371:49:7", - "statements": [ { "expression": { "arguments": [ { - "id": 1052, - "name": "ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "3391:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 1053, - "name": "_newAdmin", + "id": 1362, + "name": "amountToPay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1045, - "src": "3403:9:7", + "referencedDeclaration": 1110, + "src": "2439:11:8", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 1051, - "name": "grantRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3381:9:7", + "expression": { + "arguments": [ + { + "expression": { + "id": 1358, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2418:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2418:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2410:8:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1356, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2410:8:8", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2410:19:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "2410:28:8", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 1054, + "id": 1363, "isConstant": false, "isLValue": false, "isPure": false, @@ -28441,111 +42582,82 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3381:32:7", + "src": "2410:41:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1055, + "id": 1364, "nodeType": "ExpressionStatement", - "src": "3381:32:7" + "src": "2410:41:8" } ] }, - "functionSelector": "70480275", - "id": 1057, + "functionSelector": "5cadd4a9", + "id": 1366, "implemented": true, "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 1048, - "name": "ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "3359:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 1049, - "kind": "modifierInvocation", - "modifierName": { - "id": 1047, - "name": "onlyRole", - "nodeType": "IdentifierPath", - "referencedDeclaration": 86, - "src": "3350:8:7" - }, - "nodeType": "ModifierInvocation", - "src": "3350:20:7" - } - ], - "name": "addAdmin", - "nameLocation": "3315:8:7", + "modifiers": [], + "name": "releaseDApp", + "nameLocation": "2018:11:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 1046, + "id": 1329, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1045, + "id": 1328, "mutability": "mutable", - "name": "_newAdmin", - "nameLocation": "3332:9:7", + "name": "_appID", + "nameLocation": "2035:6:8", "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "3324:17:7", + "scope": 1366, + "src": "2030:11:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1044, - "name": "address", + "id": 1327, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3324:7:7", - "stateMutability": "nonpayable", + "src": "2030:4:8", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" } ], - "src": "3323:19:7" + "src": "2029:13:8" }, "returnParameters": { - "id": 1050, + "id": 1330, "nodeType": "ParameterList", "parameters": [], - "src": "3371:0:7" + "src": "2050:0:8" }, - "scope": 1058, - "src": "3306:114:7", + "scope": 1367, + "src": "2009:449:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], - "scope": 1059, - "src": "198:3225:7", + "scope": 1368, + "src": "63:2398:8", "usedErrors": [] } ], - "src": "37:3387:7" + "src": "37:2425:8" }, - "id": 7 + "id": 8 } } } diff --git a/contracts/artifacts/contracts/DAppStore.sol/DAppStore.dbg.json b/contracts/artifacts/contracts/DAppStore.sol/DAppStore.dbg.json index 24b2009..71e208d 100644 --- a/contracts/artifacts/contracts/DAppStore.sol/DAppStore.dbg.json +++ b/contracts/artifacts/contracts/DAppStore.sol/DAppStore.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/3f0d2e9e5af6efbb8295c70b3d14824d.json" + "buildInfo": "../../build-info/eb8fac9a10c5bb11ac5220c0c402b393.json" } diff --git a/contracts/artifacts/contracts/DAppStore.sol/DAppStore.json b/contracts/artifacts/contracts/DAppStore.sol/DAppStore.json index 07433f2..caa50ab 100644 --- a/contracts/artifacts/contracts/DAppStore.sol/DAppStore.json +++ b/contracts/artifacts/contracts/DAppStore.sol/DAppStore.json @@ -141,6 +141,25 @@ "name": "RoleRevoked", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "versionCode", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfsHash", + "type": "string" + } + ], + "name": "StoreUpdate", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -256,6 +275,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "currentDAppStoreIPFSHash", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -531,6 +563,24 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_versionCode", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_ipfsHash", + "type": "string" + } + ], + "name": "updateStore", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -545,8 +595,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50612649806100206000396000f3fe6080604052600436106101145760003560e01c80637ba13680116100a0578063ab444f2811610064578063ab444f28146103ad578063d547741f146103d6578063e58cdd90146103ff578063e73173a414610428578063f9a6cbae1461044457610114565b80637ba13680146102b4578063887e4b86146102df57806391d148541461031c578063a217fddf14610359578063a920b78c1461038457610114565b806336568abe116100e757806336568abe146101e55780635cadd4a91461020e5780636df693d314610237578063704802751461026057806375b238fc1461028957610114565b806301ffc9a7146101195780631805d79f14610156578063248a9ca31461017f5780632f2ff15d146101bc575b600080fd5b34801561012557600080fd5b50610140600480360381019061013b9190611733565b61046f565b60405161014d919061177b565b60405180910390f35b34801561016257600080fd5b5061017d600480360381019061017891906117cc565b6104e9565b005b34801561018b57600080fd5b506101a660048036038101906101a1919061182f565b6105e9565b6040516101b3919061186b565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de91906118e4565b610609565b005b3480156101f157600080fd5b5061020c600480360381019061020791906118e4565b610632565b005b34801561021a57600080fd5b50610235600480360381019061023091906117cc565b6106b5565b005b34801561024357600080fd5b5061025e600480360381019061025991906117cc565b6107d9565b005b34801561026c57600080fd5b5061028760048036038101906102829190611924565b610813565b005b34801561029557600080fd5b5061029e610873565b6040516102ab919061186b565b60405180910390f35b3480156102c057600080fd5b506102c9610897565b6040516102d69190611960565b60405180910390f35b3480156102eb57600080fd5b50610306600480360381019061030191906117cc565b61089d565b6040516103139190611ab6565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e91906118e4565b610aed565b604051610350919061177b565b60405180910390f35b34801561036557600080fd5b5061036e610b58565b60405161037b919061186b565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a69190611b3d565b610b5f565b005b3480156103b957600080fd5b506103d460048036038101906103cf9190611ccd565b610cbd565b005b3480156103e257600080fd5b506103fd60048036038101906103f891906118e4565b610e1b565b005b34801561040b57600080fd5b5061042660048036038101906104219190611d88565b610e44565b005b610442600480360381019061043d9190611dc8565b610f3b565b005b34801561045057600080fd5b506104596110be565b6040516104669190611960565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104e257506104e1826110c4565b5b9050919050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561051b8161051661112e565b611136565b600015156009600084815260200190815260200160002060009054906101000a900460ff16151514610582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057990611ecc565b60405180910390fd5b60016009600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f19c567786dbc11ad5299760ad5f30bd149748ab79fafc96892ec5c0b0b72b735826040516105dd9190611960565b60405180910390a15050565b600060016000838152602001908152602001600020600101549050919050565b610612826105e9565b6106238161061e61112e565b611136565b61062d83836111d3565b505050565b61063a61112e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90611f5e565b60405180910390fd5b6106b182826112b3565b5050565b3373ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074d90611fca565b60405180910390fd5b7f429e5a8f4e1289616a7ca758e14bd7070bbdb21d11f443824c6738d41b4432c2816040516107859190611960565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6003549081150290604051600060405180830381858888f193505050501580156107d5573d6000803e3d6000fd5b5050565b7f776ec9d2ad2a989538db0c4f163462480d393f71e37a4ffd62689425ec14a08e816040516108089190611960565b60405180910390a150565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756108458161084061112e565b611136565b61086f7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583610609565b5050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60035481565b6108a56115df565b6040518060a001604052808381526020016004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160056000858152602001908152602001600020805461092390612019565b80601f016020809104026020016040519081016040528092919081815260200182805461094f90612019565b801561099c5780601f106109715761010080835404028352916020019161099c565b820191906000526020600020905b81548152906001019060200180831161097f57829003601f168201915b505050505081526020016006600085815260200190815260200160002080546109c490612019565b80601f01602080910402602001604051908101604052809291908181526020018280546109f090612019565b8015610a3d5780601f10610a1257610100808354040283529160200191610a3d565b820191906000526020600020905b815481529060010190602001808311610a2057829003601f168201915b50505050508152602001600760008581526020019081526020016000208054610a6590612019565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9190612019565b8015610ade5780601f10610ab357610100808354040283529160200191610ade565b820191906000526020600020905b815481529060010190602001808311610ac157829003601f168201915b50505050508152509050919050565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b600060019054906101000a900460ff1680610b85575060008054906101000a900460ff16155b610bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbb906120bd565b60405180910390fd5b60008060019054906101000a900460ff161590508015610c14576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8360038190555060005b83839050811015610c8d57610c7a7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775858584818110610c6057610c5f6120dd565b5b9050602002016020810190610c759190611924565b611395565b8080610c859061213b565b915050610c1e565b5060006002819055508015610cb75760008060016101000a81548160ff0219169083151502179055505b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166004600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5590611fca565b60405180910390fd5b82600560008681526020019081526020016000209080519060200190610d85929190611624565b5081600660008681526020019081526020016000209080519060200190610dad929190611624565b5080600760008681526020019081526020016000209080519060200190610dd5929190611624565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd86208433858585604051610e0d9594939291906121cc565b60405180910390a150505050565b610e24826105e9565b610e3581610e3061112e565b611136565b610e3f83836112b3565b505050565b3373ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90612280565b60405180910390fd5b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3360046000600254815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826005600060025481526020019081526020016000209080519060200190610fb8929190611624565b50816006600060025481526020019081526020016000209080519060200190610fe2929190611624565b5080600760006002548152602001908152602001600020908051906020019061100c929190611624565b5042600860006002548152602001908152602001600020819055507f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc386002543360056000600254815260200190815260200160002060066000600254815260200190815260200160002060076000600254815260200190815260200160002060405161109c959493929190612335565b60405180910390a160016002546110b3919061239d565b600281905550505050565b60025481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6111408282610aed565b6111cf576111658173ffffffffffffffffffffffffffffffffffffffff1660146113a3565b6111738360001c60206113a3565b6040516020016111849291906124c7565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c69190612501565b60405180910390fd5b5050565b6111dd8282610aed565b6112af57600180600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061125461112e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6112bd8282610aed565b156113915760006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061133661112e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61139f82826111d3565b5050565b6060600060028360026113b69190612523565b6113c0919061239d565b67ffffffffffffffff8111156113d9576113d8611ba2565b5b6040519080825280601f01601f19166020018201604052801561140b5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611443576114426120dd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106114a7576114a66120dd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026114e79190612523565b6114f1919061239d565b90505b6001811115611591577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611533576115326120dd565b5b1a60f81b82828151811061154a576115496120dd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061158a9061257d565b90506114f4565b50600084146115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc906125f3565b60405180910390fd5b8091505092915050565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b82805461163090612019565b90600052602060002090601f0160209004810192826116525760008555611699565b82601f1061166b57805160ff1916838001178555611699565b82800160010185558215611699579182015b8281111561169857825182559160200191906001019061167d565b5b5090506116a691906116aa565b5090565b5b808211156116c35760008160009055506001016116ab565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611710816116db565b811461171b57600080fd5b50565b60008135905061172d81611707565b92915050565b600060208284031215611749576117486116d1565b5b60006117578482850161171e565b91505092915050565b60008115159050919050565b61177581611760565b82525050565b6000602082019050611790600083018461176c565b92915050565b6000819050919050565b6117a981611796565b81146117b457600080fd5b50565b6000813590506117c6816117a0565b92915050565b6000602082840312156117e2576117e16116d1565b5b60006117f0848285016117b7565b91505092915050565b6000819050919050565b61180c816117f9565b811461181757600080fd5b50565b60008135905061182981611803565b92915050565b600060208284031215611845576118446116d1565b5b60006118538482850161181a565b91505092915050565b611865816117f9565b82525050565b6000602082019050611880600083018461185c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118b182611886565b9050919050565b6118c1816118a6565b81146118cc57600080fd5b50565b6000813590506118de816118b8565b92915050565b600080604083850312156118fb576118fa6116d1565b5b60006119098582860161181a565b925050602061191a858286016118cf565b9150509250929050565b60006020828403121561193a576119396116d1565b5b6000611948848285016118cf565b91505092915050565b61195a81611796565b82525050565b60006020820190506119756000830184611951565b92915050565b61198481611796565b82525050565b611993816118a6565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156119d35780820151818401526020810190506119b8565b838111156119e2576000848401525b50505050565b6000601f19601f8301169050919050565b6000611a0482611999565b611a0e81856119a4565b9350611a1e8185602086016119b5565b611a27816119e8565b840191505092915050565b600060a083016000830151611a4a600086018261197b565b506020830151611a5d602086018261198a565b5060408301518482036040860152611a7582826119f9565b91505060608301518482036060860152611a8f82826119f9565b91505060808301518482036080860152611aa982826119f9565b9150508091505092915050565b60006020820190508181036000830152611ad08184611a32565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611afd57611afc611ad8565b5b8235905067ffffffffffffffff811115611b1a57611b19611add565b5b602083019150836020820283011115611b3657611b35611ae2565b5b9250929050565b600080600060408486031215611b5657611b556116d1565b5b6000611b64868287016117b7565b935050602084013567ffffffffffffffff811115611b8557611b846116d6565b5b611b9186828701611ae7565b92509250509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611bda826119e8565b810181811067ffffffffffffffff82111715611bf957611bf8611ba2565b5b80604052505050565b6000611c0c6116c7565b9050611c188282611bd1565b919050565b600067ffffffffffffffff821115611c3857611c37611ba2565b5b611c41826119e8565b9050602081019050919050565b82818337600083830152505050565b6000611c70611c6b84611c1d565b611c02565b905082815260208101848484011115611c8c57611c8b611b9d565b5b611c97848285611c4e565b509392505050565b600082601f830112611cb457611cb3611ad8565b5b8135611cc4848260208601611c5d565b91505092915050565b60008060008060808587031215611ce757611ce66116d1565b5b6000611cf5878288016117b7565b945050602085013567ffffffffffffffff811115611d1657611d156116d6565b5b611d2287828801611c9f565b935050604085013567ffffffffffffffff811115611d4357611d426116d6565b5b611d4f87828801611c9f565b925050606085013567ffffffffffffffff811115611d7057611d6f6116d6565b5b611d7c87828801611c9f565b91505092959194509250565b60008060408385031215611d9f57611d9e6116d1565b5b6000611dad858286016118cf565b9250506020611dbe858286016117b7565b9150509250929050565b600080600060608486031215611de157611de06116d1565b5b600084013567ffffffffffffffff811115611dff57611dfe6116d6565b5b611e0b86828701611c9f565b935050602084013567ffffffffffffffff811115611e2c57611e2b6116d6565b5b611e3886828701611c9f565b925050604084013567ffffffffffffffff811115611e5957611e586116d6565b5b611e6586828701611c9f565b9150509250925092565b600082825260208201905092915050565b7f416c726561647920766572696669656400000000000000000000000000000000600082015250565b6000611eb6601083611e6f565b9150611ec182611e80565b602082019050919050565b60006020820190508181036000830152611ee581611ea9565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000611f48602f83611e6f565b9150611f5382611eec565b604082019050919050565b60006020820190508181036000830152611f7781611f3b565b9050919050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000611fb4601183611e6f565b9150611fbf82611f7e565b602082019050919050565b60006020820190508181036000830152611fe381611fa7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061203157607f821691505b6020821081141561204557612044611fea565b5b50919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006120a7602e83611e6f565b91506120b28261204b565b604082019050919050565b600060208201905081810360008301526120d68161209a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061214682611796565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156121795761217861210c565b5b600182019050919050565b61218d816118a6565b82525050565b600061219e82611999565b6121a88185611e6f565b93506121b88185602086016119b5565b6121c1816119e8565b840191505092915050565b600060a0820190506121e16000830188611951565b6121ee6020830187612184565b81810360408301526122008186612193565b905081810360608301526122148185612193565b905081810360808301526122288184612193565b90509695505050505050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b600061226a600983611e6f565b915061227582612234565b602082019050919050565b600060208201905081810360008301526122998161225d565b9050919050565b60008190508160005260206000209050919050565b600081546122c281612019565b6122cc8186611e6f565b945060018216600081146122e757600181146122f95761232c565b60ff198316865260208601935061232c565b612302856122a0565b60005b8381101561232457815481890152600182019150602081019050612305565b808801955050505b50505092915050565b600060a08201905061234a6000830188611951565b6123576020830187612184565b818103604083015261236981866122b5565b9050818103606083015261237d81856122b5565b9050818103608083015261239181846122b5565b90509695505050505050565b60006123a882611796565b91506123b383611796565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123e8576123e761210c565b5b828201905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006124346017836123f3565b915061243f826123fe565b601782019050919050565b600061245582611999565b61245f81856123f3565b935061246f8185602086016119b5565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006124b16011836123f3565b91506124bc8261247b565b601182019050919050565b60006124d282612427565b91506124de828561244a565b91506124e9826124a4565b91506124f5828461244a565b91508190509392505050565b6000602082019050818103600083015261251b8184612193565b905092915050565b600061252e82611796565b915061253983611796565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125725761257161210c565b5b828202905092915050565b600061258882611796565b9150600082141561259c5761259b61210c565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006125dd602083611e6f565b91506125e8826125a7565b602082019050919050565b6000602082019050818103600083015261260c816125d0565b905091905056fea2646970667358221220e8874472b99f795c264c612c2fbef6d21b929e133ecb516317dad7b009fe9b9a64736f6c63430008090033", - "deployedBytecode": "0x6080604052600436106101145760003560e01c80637ba13680116100a0578063ab444f2811610064578063ab444f28146103ad578063d547741f146103d6578063e58cdd90146103ff578063e73173a414610428578063f9a6cbae1461044457610114565b80637ba13680146102b4578063887e4b86146102df57806391d148541461031c578063a217fddf14610359578063a920b78c1461038457610114565b806336568abe116100e757806336568abe146101e55780635cadd4a91461020e5780636df693d314610237578063704802751461026057806375b238fc1461028957610114565b806301ffc9a7146101195780631805d79f14610156578063248a9ca31461017f5780632f2ff15d146101bc575b600080fd5b34801561012557600080fd5b50610140600480360381019061013b9190611733565b61046f565b60405161014d919061177b565b60405180910390f35b34801561016257600080fd5b5061017d600480360381019061017891906117cc565b6104e9565b005b34801561018b57600080fd5b506101a660048036038101906101a1919061182f565b6105e9565b6040516101b3919061186b565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de91906118e4565b610609565b005b3480156101f157600080fd5b5061020c600480360381019061020791906118e4565b610632565b005b34801561021a57600080fd5b50610235600480360381019061023091906117cc565b6106b5565b005b34801561024357600080fd5b5061025e600480360381019061025991906117cc565b6107d9565b005b34801561026c57600080fd5b5061028760048036038101906102829190611924565b610813565b005b34801561029557600080fd5b5061029e610873565b6040516102ab919061186b565b60405180910390f35b3480156102c057600080fd5b506102c9610897565b6040516102d69190611960565b60405180910390f35b3480156102eb57600080fd5b50610306600480360381019061030191906117cc565b61089d565b6040516103139190611ab6565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e91906118e4565b610aed565b604051610350919061177b565b60405180910390f35b34801561036557600080fd5b5061036e610b58565b60405161037b919061186b565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a69190611b3d565b610b5f565b005b3480156103b957600080fd5b506103d460048036038101906103cf9190611ccd565b610cbd565b005b3480156103e257600080fd5b506103fd60048036038101906103f891906118e4565b610e1b565b005b34801561040b57600080fd5b5061042660048036038101906104219190611d88565b610e44565b005b610442600480360381019061043d9190611dc8565b610f3b565b005b34801561045057600080fd5b506104596110be565b6040516104669190611960565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104e257506104e1826110c4565b5b9050919050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561051b8161051661112e565b611136565b600015156009600084815260200190815260200160002060009054906101000a900460ff16151514610582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057990611ecc565b60405180910390fd5b60016009600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f19c567786dbc11ad5299760ad5f30bd149748ab79fafc96892ec5c0b0b72b735826040516105dd9190611960565b60405180910390a15050565b600060016000838152602001908152602001600020600101549050919050565b610612826105e9565b6106238161061e61112e565b611136565b61062d83836111d3565b505050565b61063a61112e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90611f5e565b60405180910390fd5b6106b182826112b3565b5050565b3373ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074d90611fca565b60405180910390fd5b7f429e5a8f4e1289616a7ca758e14bd7070bbdb21d11f443824c6738d41b4432c2816040516107859190611960565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6003549081150290604051600060405180830381858888f193505050501580156107d5573d6000803e3d6000fd5b5050565b7f776ec9d2ad2a989538db0c4f163462480d393f71e37a4ffd62689425ec14a08e816040516108089190611960565b60405180910390a150565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756108458161084061112e565b611136565b61086f7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583610609565b5050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60035481565b6108a56115df565b6040518060a001604052808381526020016004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160056000858152602001908152602001600020805461092390612019565b80601f016020809104026020016040519081016040528092919081815260200182805461094f90612019565b801561099c5780601f106109715761010080835404028352916020019161099c565b820191906000526020600020905b81548152906001019060200180831161097f57829003601f168201915b505050505081526020016006600085815260200190815260200160002080546109c490612019565b80601f01602080910402602001604051908101604052809291908181526020018280546109f090612019565b8015610a3d5780601f10610a1257610100808354040283529160200191610a3d565b820191906000526020600020905b815481529060010190602001808311610a2057829003601f168201915b50505050508152602001600760008581526020019081526020016000208054610a6590612019565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9190612019565b8015610ade5780601f10610ab357610100808354040283529160200191610ade565b820191906000526020600020905b815481529060010190602001808311610ac157829003601f168201915b50505050508152509050919050565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b600060019054906101000a900460ff1680610b85575060008054906101000a900460ff16155b610bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbb906120bd565b60405180910390fd5b60008060019054906101000a900460ff161590508015610c14576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8360038190555060005b83839050811015610c8d57610c7a7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775858584818110610c6057610c5f6120dd565b5b9050602002016020810190610c759190611924565b611395565b8080610c859061213b565b915050610c1e565b5060006002819055508015610cb75760008060016101000a81548160ff0219169083151502179055505b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166004600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5590611fca565b60405180910390fd5b82600560008681526020019081526020016000209080519060200190610d85929190611624565b5081600660008681526020019081526020016000209080519060200190610dad929190611624565b5080600760008681526020019081526020016000209080519060200190610dd5929190611624565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd86208433858585604051610e0d9594939291906121cc565b60405180910390a150505050565b610e24826105e9565b610e3581610e3061112e565b611136565b610e3f83836112b3565b505050565b3373ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90612280565b60405180910390fd5b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3360046000600254815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826005600060025481526020019081526020016000209080519060200190610fb8929190611624565b50816006600060025481526020019081526020016000209080519060200190610fe2929190611624565b5080600760006002548152602001908152602001600020908051906020019061100c929190611624565b5042600860006002548152602001908152602001600020819055507f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc386002543360056000600254815260200190815260200160002060066000600254815260200190815260200160002060076000600254815260200190815260200160002060405161109c959493929190612335565b60405180910390a160016002546110b3919061239d565b600281905550505050565b60025481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6111408282610aed565b6111cf576111658173ffffffffffffffffffffffffffffffffffffffff1660146113a3565b6111738360001c60206113a3565b6040516020016111849291906124c7565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c69190612501565b60405180910390fd5b5050565b6111dd8282610aed565b6112af57600180600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061125461112e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6112bd8282610aed565b156113915760006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061133661112e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61139f82826111d3565b5050565b6060600060028360026113b69190612523565b6113c0919061239d565b67ffffffffffffffff8111156113d9576113d8611ba2565b5b6040519080825280601f01601f19166020018201604052801561140b5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611443576114426120dd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106114a7576114a66120dd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026114e79190612523565b6114f1919061239d565b90505b6001811115611591577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611533576115326120dd565b5b1a60f81b82828151811061154a576115496120dd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061158a9061257d565b90506114f4565b50600084146115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc906125f3565b60405180910390fd5b8091505092915050565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b82805461163090612019565b90600052602060002090601f0160209004810192826116525760008555611699565b82601f1061166b57805160ff1916838001178555611699565b82800160010185558215611699579182015b8281111561169857825182559160200191906001019061167d565b5b5090506116a691906116aa565b5090565b5b808211156116c35760008160009055506001016116ab565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611710816116db565b811461171b57600080fd5b50565b60008135905061172d81611707565b92915050565b600060208284031215611749576117486116d1565b5b60006117578482850161171e565b91505092915050565b60008115159050919050565b61177581611760565b82525050565b6000602082019050611790600083018461176c565b92915050565b6000819050919050565b6117a981611796565b81146117b457600080fd5b50565b6000813590506117c6816117a0565b92915050565b6000602082840312156117e2576117e16116d1565b5b60006117f0848285016117b7565b91505092915050565b6000819050919050565b61180c816117f9565b811461181757600080fd5b50565b60008135905061182981611803565b92915050565b600060208284031215611845576118446116d1565b5b60006118538482850161181a565b91505092915050565b611865816117f9565b82525050565b6000602082019050611880600083018461185c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118b182611886565b9050919050565b6118c1816118a6565b81146118cc57600080fd5b50565b6000813590506118de816118b8565b92915050565b600080604083850312156118fb576118fa6116d1565b5b60006119098582860161181a565b925050602061191a858286016118cf565b9150509250929050565b60006020828403121561193a576119396116d1565b5b6000611948848285016118cf565b91505092915050565b61195a81611796565b82525050565b60006020820190506119756000830184611951565b92915050565b61198481611796565b82525050565b611993816118a6565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156119d35780820151818401526020810190506119b8565b838111156119e2576000848401525b50505050565b6000601f19601f8301169050919050565b6000611a0482611999565b611a0e81856119a4565b9350611a1e8185602086016119b5565b611a27816119e8565b840191505092915050565b600060a083016000830151611a4a600086018261197b565b506020830151611a5d602086018261198a565b5060408301518482036040860152611a7582826119f9565b91505060608301518482036060860152611a8f82826119f9565b91505060808301518482036080860152611aa982826119f9565b9150508091505092915050565b60006020820190508181036000830152611ad08184611a32565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611afd57611afc611ad8565b5b8235905067ffffffffffffffff811115611b1a57611b19611add565b5b602083019150836020820283011115611b3657611b35611ae2565b5b9250929050565b600080600060408486031215611b5657611b556116d1565b5b6000611b64868287016117b7565b935050602084013567ffffffffffffffff811115611b8557611b846116d6565b5b611b9186828701611ae7565b92509250509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611bda826119e8565b810181811067ffffffffffffffff82111715611bf957611bf8611ba2565b5b80604052505050565b6000611c0c6116c7565b9050611c188282611bd1565b919050565b600067ffffffffffffffff821115611c3857611c37611ba2565b5b611c41826119e8565b9050602081019050919050565b82818337600083830152505050565b6000611c70611c6b84611c1d565b611c02565b905082815260208101848484011115611c8c57611c8b611b9d565b5b611c97848285611c4e565b509392505050565b600082601f830112611cb457611cb3611ad8565b5b8135611cc4848260208601611c5d565b91505092915050565b60008060008060808587031215611ce757611ce66116d1565b5b6000611cf5878288016117b7565b945050602085013567ffffffffffffffff811115611d1657611d156116d6565b5b611d2287828801611c9f565b935050604085013567ffffffffffffffff811115611d4357611d426116d6565b5b611d4f87828801611c9f565b925050606085013567ffffffffffffffff811115611d7057611d6f6116d6565b5b611d7c87828801611c9f565b91505092959194509250565b60008060408385031215611d9f57611d9e6116d1565b5b6000611dad858286016118cf565b9250506020611dbe858286016117b7565b9150509250929050565b600080600060608486031215611de157611de06116d1565b5b600084013567ffffffffffffffff811115611dff57611dfe6116d6565b5b611e0b86828701611c9f565b935050602084013567ffffffffffffffff811115611e2c57611e2b6116d6565b5b611e3886828701611c9f565b925050604084013567ffffffffffffffff811115611e5957611e586116d6565b5b611e6586828701611c9f565b9150509250925092565b600082825260208201905092915050565b7f416c726561647920766572696669656400000000000000000000000000000000600082015250565b6000611eb6601083611e6f565b9150611ec182611e80565b602082019050919050565b60006020820190508181036000830152611ee581611ea9565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000611f48602f83611e6f565b9150611f5382611eec565b604082019050919050565b60006020820190508181036000830152611f7781611f3b565b9050919050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000611fb4601183611e6f565b9150611fbf82611f7e565b602082019050919050565b60006020820190508181036000830152611fe381611fa7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061203157607f821691505b6020821081141561204557612044611fea565b5b50919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006120a7602e83611e6f565b91506120b28261204b565b604082019050919050565b600060208201905081810360008301526120d68161209a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061214682611796565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156121795761217861210c565b5b600182019050919050565b61218d816118a6565b82525050565b600061219e82611999565b6121a88185611e6f565b93506121b88185602086016119b5565b6121c1816119e8565b840191505092915050565b600060a0820190506121e16000830188611951565b6121ee6020830187612184565b81810360408301526122008186612193565b905081810360608301526122148185612193565b905081810360808301526122288184612193565b90509695505050505050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b600061226a600983611e6f565b915061227582612234565b602082019050919050565b600060208201905081810360008301526122998161225d565b9050919050565b60008190508160005260206000209050919050565b600081546122c281612019565b6122cc8186611e6f565b945060018216600081146122e757600181146122f95761232c565b60ff198316865260208601935061232c565b612302856122a0565b60005b8381101561232457815481890152600182019150602081019050612305565b808801955050505b50505092915050565b600060a08201905061234a6000830188611951565b6123576020830187612184565b818103604083015261236981866122b5565b9050818103606083015261237d81856122b5565b9050818103608083015261239181846122b5565b90509695505050505050565b60006123a882611796565b91506123b383611796565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123e8576123e761210c565b5b828201905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006124346017836123f3565b915061243f826123fe565b601782019050919050565b600061245582611999565b61245f81856123f3565b935061246f8185602086016119b5565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006124b16011836123f3565b91506124bc8261247b565b601182019050919050565b60006124d282612427565b91506124de828561244a565b91506124e9826124a4565b91506124f5828461244a565b91508190509392505050565b6000602082019050818103600083015261251b8184612193565b905092915050565b600061252e82611796565b915061253983611796565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125725761257161210c565b5b828202905092915050565b600061258882611796565b9150600082141561259c5761259b61210c565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006125dd602083611e6f565b91506125e8826125a7565b602082019050919050565b6000602082019050818103600083015261260c816125d0565b905091905056fea2646970667358221220e8874472b99f795c264c612c2fbef6d21b929e133ecb516317dad7b009fe9b9a64736f6c63430008090033", + "bytecode": "0x608060405234801561001057600080fd5b50612980806100206000396000f3fe60806040526004361061012a5760003560e01c80637ba13680116100ab578063a920b78c1161006f578063a920b78c146103ee578063ab444f2814610417578063d547741f14610440578063e58cdd9014610469578063e73173a414610492578063f9a6cbae146104ae5761012a565b80637ba13680146102f3578063887e4b861461031e57806391d148541461035b57806393946a8214610398578063a217fddf146103c35761012a565b806336568abe116100f257806336568abe146102245780635cadd4a91461024d5780636df693d314610276578063704802751461029f57806375b238fc146102c85761012a565b806301ffc9a71461012f5780631805d79f1461016c5780631c7828bb14610195578063248a9ca3146101be5780632f2ff15d146101fb575b600080fd5b34801561013b57600080fd5b5061015660048036038101906101519190611955565b6104d9565b604051610163919061199d565b60405180910390f35b34801561017857600080fd5b50610193600480360381019061018e91906119ee565b610553565b005b3480156101a157600080fd5b506101bc60048036038101906101b79190611a80565b610653565b005b3480156101ca57600080fd5b506101e560048036038101906101e09190611b16565b6106ef565b6040516101f29190611b52565b60405180910390f35b34801561020757600080fd5b50610222600480360381019061021d9190611bcb565b61070f565b005b34801561023057600080fd5b5061024b60048036038101906102469190611bcb565b610738565b005b34801561025957600080fd5b50610274600480360381019061026f91906119ee565b6107bb565b005b34801561028257600080fd5b5061029d600480360381019061029891906119ee565b6108df565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190611c0b565b610919565b005b3480156102d457600080fd5b506102dd610979565b6040516102ea9190611b52565b60405180910390f35b3480156102ff57600080fd5b5061030861099d565b6040516103159190611c47565b60405180910390f35b34801561032a57600080fd5b50610345600480360381019061034091906119ee565b6109a3565b6040516103529190611d9d565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190611bcb565b610bf3565b60405161038f919061199d565b60405180910390f35b3480156103a457600080fd5b506103ad610c5e565b6040516103ba9190611e09565b60405180910390f35b3480156103cf57600080fd5b506103d8610cec565b6040516103e59190611b52565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190611e81565b610cf3565b005b34801561042357600080fd5b5061043e60048036038101906104399190612011565b610e59565b005b34801561044c57600080fd5b5061046760048036038101906104629190611bcb565b610fb7565b005b34801561047557600080fd5b50610490600480360381019061048b91906120cc565b610fe0565b005b6104ac60048036038101906104a7919061210c565b6110d7565b005b3480156104ba57600080fd5b506104c361125a565b6040516104d09190611c47565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061054c575061054b82611260565b5b9050919050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610585816105806112ca565b6112d2565b60001515600b600084815260200190815260200160002060009054906101000a900460ff161515146105ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e3906121ff565b60405180910390fd5b6001600b600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f19c567786dbc11ad5299760ad5f30bd149748ab79fafc96892ec5c0b0b72b735826040516106479190611c47565b60405180910390a15050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610685816106806112ca565b6112d2565b600454841161069357600080fd5b836004819055508282600591906106ab92919061177b565b507fac6f529748dff7dcfce830264026aae25c056feca522504efe68bbd393b95e0160045484846040516106e19392919061224c565b60405180910390a150505050565b600060016000838152602001908152602001600020600101549050919050565b610718826106ef565b610729816107246112ca565b6112d2565b610733838361136f565b505050565b6107406112ca565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a4906122f0565b60405180910390fd5b6107b7828261144f565b5050565b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108539061235c565b60405180910390fd5b7f429e5a8f4e1289616a7ca758e14bd7070bbdb21d11f443824c6738d41b4432c28160405161088b9190611c47565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6003549081150290604051600060405180830381858888f193505050501580156108db573d6000803e3d6000fd5b5050565b7f776ec9d2ad2a989538db0c4f163462480d393f71e37a4ffd62689425ec14a08e8160405161090e9190611c47565b60405180910390a150565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561094b816109466112ca565b6112d2565b6109757fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758361070f565b5050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60035481565b6109ab611801565b6040518060a001604052808381526020016006600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600760008581526020019081526020016000208054610a29906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610a55906123ab565b8015610aa25780601f10610a7757610100808354040283529160200191610aa2565b820191906000526020600020905b815481529060010190602001808311610a8557829003601f168201915b50505050508152602001600860008581526020019081526020016000208054610aca906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610af6906123ab565b8015610b435780601f10610b1857610100808354040283529160200191610b43565b820191906000526020600020905b815481529060010190602001808311610b2657829003601f168201915b50505050508152602001600960008581526020019081526020016000208054610b6b906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610b97906123ab565b8015610be45780601f10610bb957610100808354040283529160200191610be4565b820191906000526020600020905b815481529060010190602001808311610bc757829003601f168201915b50505050508152509050919050565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60058054610c6b906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610c97906123ab565b8015610ce45780601f10610cb957610100808354040283529160200191610ce4565b820191906000526020600020905b815481529060010190602001808311610cc757829003601f168201915b505050505081565b6000801b81565b600060019054906101000a900460ff1680610d19575060008054906101000a900460ff16155b610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f9061244f565b60405180910390fd5b60008060019054906101000a900460ff161590508015610da8576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8360038190555060005b83839050811015610e2157610e0e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775858584818110610df457610df361246f565b5b9050602002016020810190610e099190611c0b565b611531565b8080610e19906124cd565b915050610db2565b50600060028190555060006004819055508015610e535760008060016101000a81548160ff0219169083151502179055505b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166006600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef19061235c565b60405180910390fd5b82600760008681526020019081526020016000209080519060200190610f21929190611846565b5081600860008681526020019081526020016000209080519060200190610f49929190611846565b5080600960008681526020019081526020016000209080519060200190610f71929190611846565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd86208433858585604051610fa9959493929190612525565b60405180910390a150505050565b610fc0826106ef565b610fd181610fcc6112ca565b6112d2565b610fdb838361144f565b505050565b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611081576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611078906125d9565b60405180910390fd5b816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3360066000600254815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826007600060025481526020019081526020016000209080519060200190611154929190611846565b5081600860006002548152602001908152602001600020908051906020019061117e929190611846565b508060096000600254815260200190815260200160002090805190602001906111a8929190611846565b5042600a60006002548152602001908152602001600020819055507f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc386002543360076000600254815260200190815260200160002060086000600254815260200190815260200160002060096000600254815260200190815260200160002060405161123895949392919061268e565b60405180910390a1600160025461124f91906126f6565b600281905550505050565b60025481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6112dc8282610bf3565b61136b576113018173ffffffffffffffffffffffffffffffffffffffff16601461153f565b61130f8360001c602061153f565b604051602001611320929190612820565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113629190611e09565b60405180910390fd5b5050565b6113798282610bf3565b61144b57600180600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113f06112ca565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6114598282610bf3565b1561152d5760006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114d26112ca565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61153b828261136f565b5050565b606060006002836002611552919061285a565b61155c91906126f6565b67ffffffffffffffff81111561157557611574611ee6565b5b6040519080825280601f01601f1916602001820160405280156115a75781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106115df576115de61246f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106116435761164261246f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611683919061285a565b61168d91906126f6565b90505b600181111561172d577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106116cf576116ce61246f565b5b1a60f81b8282815181106116e6576116e561246f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611726906128b4565b9050611690565b5060008414611771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117689061292a565b60405180910390fd5b8091505092915050565b828054611787906123ab565b90600052602060002090601f0160209004810192826117a957600085556117f0565b82601f106117c257803560ff19168380011785556117f0565b828001600101855582156117f0579182015b828111156117ef5782358255916020019190600101906117d4565b5b5090506117fd91906118cc565b5090565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b828054611852906123ab565b90600052602060002090601f01602090048101928261187457600085556118bb565b82601f1061188d57805160ff19168380011785556118bb565b828001600101855582156118bb579182015b828111156118ba57825182559160200191906001019061189f565b5b5090506118c891906118cc565b5090565b5b808211156118e55760008160009055506001016118cd565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611932816118fd565b811461193d57600080fd5b50565b60008135905061194f81611929565b92915050565b60006020828403121561196b5761196a6118f3565b5b600061197984828501611940565b91505092915050565b60008115159050919050565b61199781611982565b82525050565b60006020820190506119b2600083018461198e565b92915050565b6000819050919050565b6119cb816119b8565b81146119d657600080fd5b50565b6000813590506119e8816119c2565b92915050565b600060208284031215611a0457611a036118f3565b5b6000611a12848285016119d9565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611a4057611a3f611a1b565b5b8235905067ffffffffffffffff811115611a5d57611a5c611a20565b5b602083019150836001820283011115611a7957611a78611a25565b5b9250929050565b600080600060408486031215611a9957611a986118f3565b5b6000611aa7868287016119d9565b935050602084013567ffffffffffffffff811115611ac857611ac76118f8565b5b611ad486828701611a2a565b92509250509250925092565b6000819050919050565b611af381611ae0565b8114611afe57600080fd5b50565b600081359050611b1081611aea565b92915050565b600060208284031215611b2c57611b2b6118f3565b5b6000611b3a84828501611b01565b91505092915050565b611b4c81611ae0565b82525050565b6000602082019050611b676000830184611b43565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b9882611b6d565b9050919050565b611ba881611b8d565b8114611bb357600080fd5b50565b600081359050611bc581611b9f565b92915050565b60008060408385031215611be257611be16118f3565b5b6000611bf085828601611b01565b9250506020611c0185828601611bb6565b9150509250929050565b600060208284031215611c2157611c206118f3565b5b6000611c2f84828501611bb6565b91505092915050565b611c41816119b8565b82525050565b6000602082019050611c5c6000830184611c38565b92915050565b611c6b816119b8565b82525050565b611c7a81611b8d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cba578082015181840152602081019050611c9f565b83811115611cc9576000848401525b50505050565b6000601f19601f8301169050919050565b6000611ceb82611c80565b611cf58185611c8b565b9350611d05818560208601611c9c565b611d0e81611ccf565b840191505092915050565b600060a083016000830151611d316000860182611c62565b506020830151611d446020860182611c71565b5060408301518482036040860152611d5c8282611ce0565b91505060608301518482036060860152611d768282611ce0565b91505060808301518482036080860152611d908282611ce0565b9150508091505092915050565b60006020820190508181036000830152611db78184611d19565b905092915050565b600082825260208201905092915050565b6000611ddb82611c80565b611de58185611dbf565b9350611df5818560208601611c9c565b611dfe81611ccf565b840191505092915050565b60006020820190508181036000830152611e238184611dd0565b905092915050565b60008083601f840112611e4157611e40611a1b565b5b8235905067ffffffffffffffff811115611e5e57611e5d611a20565b5b602083019150836020820283011115611e7a57611e79611a25565b5b9250929050565b600080600060408486031215611e9a57611e996118f3565b5b6000611ea8868287016119d9565b935050602084013567ffffffffffffffff811115611ec957611ec86118f8565b5b611ed586828701611e2b565b92509250509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f1e82611ccf565b810181811067ffffffffffffffff82111715611f3d57611f3c611ee6565b5b80604052505050565b6000611f506118e9565b9050611f5c8282611f15565b919050565b600067ffffffffffffffff821115611f7c57611f7b611ee6565b5b611f8582611ccf565b9050602081019050919050565b82818337600083830152505050565b6000611fb4611faf84611f61565b611f46565b905082815260208101848484011115611fd057611fcf611ee1565b5b611fdb848285611f92565b509392505050565b600082601f830112611ff857611ff7611a1b565b5b8135612008848260208601611fa1565b91505092915050565b6000806000806080858703121561202b5761202a6118f3565b5b6000612039878288016119d9565b945050602085013567ffffffffffffffff81111561205a576120596118f8565b5b61206687828801611fe3565b935050604085013567ffffffffffffffff811115612087576120866118f8565b5b61209387828801611fe3565b925050606085013567ffffffffffffffff8111156120b4576120b36118f8565b5b6120c087828801611fe3565b91505092959194509250565b600080604083850312156120e3576120e26118f3565b5b60006120f185828601611bb6565b9250506020612102858286016119d9565b9150509250929050565b600080600060608486031215612125576121246118f3565b5b600084013567ffffffffffffffff811115612143576121426118f8565b5b61214f86828701611fe3565b935050602084013567ffffffffffffffff8111156121705761216f6118f8565b5b61217c86828701611fe3565b925050604084013567ffffffffffffffff81111561219d5761219c6118f8565b5b6121a986828701611fe3565b9150509250925092565b7f416c726561647920766572696669656400000000000000000000000000000000600082015250565b60006121e9601083611dbf565b91506121f4826121b3565b602082019050919050565b60006020820190508181036000830152612218816121dc565b9050919050565b600061222b8385611dbf565b9350612238838584611f92565b61224183611ccf565b840190509392505050565b60006040820190506122616000830186611c38565b818103602083015261227481848661221f565b9050949350505050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006122da602f83611dbf565b91506122e58261227e565b604082019050919050565b60006020820190508181036000830152612309816122cd565b9050919050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000612346601183611dbf565b915061235182612310565b602082019050919050565b6000602082019050818103600083015261237581612339565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123c357607f821691505b602082108114156123d7576123d661237c565b5b50919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000612439602e83611dbf565b9150612444826123dd565b604082019050919050565b600060208201905081810360008301526124688161242c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124d8826119b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561250b5761250a61249e565b5b600182019050919050565b61251f81611b8d565b82525050565b600060a08201905061253a6000830188611c38565b6125476020830187612516565b81810360408301526125598186611dd0565b9050818103606083015261256d8185611dd0565b905081810360808301526125818184611dd0565b90509695505050505050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006125c3600983611dbf565b91506125ce8261258d565b602082019050919050565b600060208201905081810360008301526125f2816125b6565b9050919050565b60008190508160005260206000209050919050565b6000815461261b816123ab565b6126258186611dbf565b94506001821660008114612640576001811461265257612685565b60ff1983168652602086019350612685565b61265b856125f9565b60005b8381101561267d5781548189015260018201915060208101905061265e565b808801955050505b50505092915050565b600060a0820190506126a36000830188611c38565b6126b06020830187612516565b81810360408301526126c2818661260e565b905081810360608301526126d6818561260e565b905081810360808301526126ea818461260e565b90509695505050505050565b6000612701826119b8565b915061270c836119b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127415761274061249e565b5b828201905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061278d60178361274c565b915061279882612757565b601782019050919050565b60006127ae82611c80565b6127b8818561274c565b93506127c8818560208601611c9c565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061280a60118361274c565b9150612815826127d4565b601182019050919050565b600061282b82612780565b915061283782856127a3565b9150612842826127fd565b915061284e82846127a3565b91508190509392505050565b6000612865826119b8565b9150612870836119b8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128a9576128a861249e565b5b828202905092915050565b60006128bf826119b8565b915060008214156128d3576128d261249e565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000612914602083611dbf565b915061291f826128de565b602082019050919050565b6000602082019050818103600083015261294381612907565b905091905056fea26469706673582212208f0ee76cef5f412b12aabf5d0eee3507e96a3d036a8af51c0cae456831f3518c64736f6c63430008090033", + "deployedBytecode": "0x60806040526004361061012a5760003560e01c80637ba13680116100ab578063a920b78c1161006f578063a920b78c146103ee578063ab444f2814610417578063d547741f14610440578063e58cdd9014610469578063e73173a414610492578063f9a6cbae146104ae5761012a565b80637ba13680146102f3578063887e4b861461031e57806391d148541461035b57806393946a8214610398578063a217fddf146103c35761012a565b806336568abe116100f257806336568abe146102245780635cadd4a91461024d5780636df693d314610276578063704802751461029f57806375b238fc146102c85761012a565b806301ffc9a71461012f5780631805d79f1461016c5780631c7828bb14610195578063248a9ca3146101be5780632f2ff15d146101fb575b600080fd5b34801561013b57600080fd5b5061015660048036038101906101519190611955565b6104d9565b604051610163919061199d565b60405180910390f35b34801561017857600080fd5b50610193600480360381019061018e91906119ee565b610553565b005b3480156101a157600080fd5b506101bc60048036038101906101b79190611a80565b610653565b005b3480156101ca57600080fd5b506101e560048036038101906101e09190611b16565b6106ef565b6040516101f29190611b52565b60405180910390f35b34801561020757600080fd5b50610222600480360381019061021d9190611bcb565b61070f565b005b34801561023057600080fd5b5061024b60048036038101906102469190611bcb565b610738565b005b34801561025957600080fd5b50610274600480360381019061026f91906119ee565b6107bb565b005b34801561028257600080fd5b5061029d600480360381019061029891906119ee565b6108df565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190611c0b565b610919565b005b3480156102d457600080fd5b506102dd610979565b6040516102ea9190611b52565b60405180910390f35b3480156102ff57600080fd5b5061030861099d565b6040516103159190611c47565b60405180910390f35b34801561032a57600080fd5b50610345600480360381019061034091906119ee565b6109a3565b6040516103529190611d9d565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190611bcb565b610bf3565b60405161038f919061199d565b60405180910390f35b3480156103a457600080fd5b506103ad610c5e565b6040516103ba9190611e09565b60405180910390f35b3480156103cf57600080fd5b506103d8610cec565b6040516103e59190611b52565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190611e81565b610cf3565b005b34801561042357600080fd5b5061043e60048036038101906104399190612011565b610e59565b005b34801561044c57600080fd5b5061046760048036038101906104629190611bcb565b610fb7565b005b34801561047557600080fd5b50610490600480360381019061048b91906120cc565b610fe0565b005b6104ac60048036038101906104a7919061210c565b6110d7565b005b3480156104ba57600080fd5b506104c361125a565b6040516104d09190611c47565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061054c575061054b82611260565b5b9050919050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610585816105806112ca565b6112d2565b60001515600b600084815260200190815260200160002060009054906101000a900460ff161515146105ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e3906121ff565b60405180910390fd5b6001600b600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507f19c567786dbc11ad5299760ad5f30bd149748ab79fafc96892ec5c0b0b72b735826040516106479190611c47565b60405180910390a15050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610685816106806112ca565b6112d2565b600454841161069357600080fd5b836004819055508282600591906106ab92919061177b565b507fac6f529748dff7dcfce830264026aae25c056feca522504efe68bbd393b95e0160045484846040516106e19392919061224c565b60405180910390a150505050565b600060016000838152602001908152602001600020600101549050919050565b610718826106ef565b610729816107246112ca565b6112d2565b610733838361136f565b505050565b6107406112ca565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a4906122f0565b60405180910390fd5b6107b7828261144f565b5050565b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108539061235c565b60405180910390fd5b7f429e5a8f4e1289616a7ca758e14bd7070bbdb21d11f443824c6738d41b4432c28160405161088b9190611c47565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc6003549081150290604051600060405180830381858888f193505050501580156108db573d6000803e3d6000fd5b5050565b7f776ec9d2ad2a989538db0c4f163462480d393f71e37a4ffd62689425ec14a08e8160405161090e9190611c47565b60405180910390a150565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561094b816109466112ca565b6112d2565b6109757fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758361070f565b5050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60035481565b6109ab611801565b6040518060a001604052808381526020016006600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600760008581526020019081526020016000208054610a29906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610a55906123ab565b8015610aa25780601f10610a7757610100808354040283529160200191610aa2565b820191906000526020600020905b815481529060010190602001808311610a8557829003601f168201915b50505050508152602001600860008581526020019081526020016000208054610aca906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610af6906123ab565b8015610b435780601f10610b1857610100808354040283529160200191610b43565b820191906000526020600020905b815481529060010190602001808311610b2657829003601f168201915b50505050508152602001600960008581526020019081526020016000208054610b6b906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610b97906123ab565b8015610be45780601f10610bb957610100808354040283529160200191610be4565b820191906000526020600020905b815481529060010190602001808311610bc757829003601f168201915b50505050508152509050919050565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60058054610c6b906123ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610c97906123ab565b8015610ce45780601f10610cb957610100808354040283529160200191610ce4565b820191906000526020600020905b815481529060010190602001808311610cc757829003601f168201915b505050505081565b6000801b81565b600060019054906101000a900460ff1680610d19575060008054906101000a900460ff16155b610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f9061244f565b60405180910390fd5b60008060019054906101000a900460ff161590508015610da8576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8360038190555060005b83839050811015610e2157610e0e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775858584818110610df457610df361246f565b5b9050602002016020810190610e099190611c0b565b611531565b8080610e19906124cd565b915050610db2565b50600060028190555060006004819055508015610e535760008060016101000a81548160ff0219169083151502179055505b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166006600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef19061235c565b60405180910390fd5b82600760008681526020019081526020016000209080519060200190610f21929190611846565b5081600860008681526020019081526020016000209080519060200190610f49929190611846565b5080600960008681526020019081526020016000209080519060200190610f71929190611846565b507ffd025d83852f29d01b58fd4b19d8cfe0e12af0ee9f31a7e273ea765cd4dd86208433858585604051610fa9959493929190612525565b60405180910390a150505050565b610fc0826106ef565b610fd181610fcc6112ca565b6112d2565b610fdb838361144f565b505050565b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611081576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611078906125d9565b60405180910390fd5b816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3360066000600254815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826007600060025481526020019081526020016000209080519060200190611154929190611846565b5081600860006002548152602001908152602001600020908051906020019061117e929190611846565b508060096000600254815260200190815260200160002090805190602001906111a8929190611846565b5042600a60006002548152602001908152602001600020819055507f54362b36d34efdda9f90402e88c73fd5b6d780ea5a94052317e4664b31aacc386002543360076000600254815260200190815260200160002060086000600254815260200190815260200160002060096000600254815260200190815260200160002060405161123895949392919061268e565b60405180910390a1600160025461124f91906126f6565b600281905550505050565b60025481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6112dc8282610bf3565b61136b576113018173ffffffffffffffffffffffffffffffffffffffff16601461153f565b61130f8360001c602061153f565b604051602001611320929190612820565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113629190611e09565b60405180910390fd5b5050565b6113798282610bf3565b61144b57600180600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113f06112ca565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6114598282610bf3565b1561152d5760006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114d26112ca565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61153b828261136f565b5050565b606060006002836002611552919061285a565b61155c91906126f6565b67ffffffffffffffff81111561157557611574611ee6565b5b6040519080825280601f01601f1916602001820160405280156115a75781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106115df576115de61246f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106116435761164261246f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611683919061285a565b61168d91906126f6565b90505b600181111561172d577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106116cf576116ce61246f565b5b1a60f81b8282815181106116e6576116e561246f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611726906128b4565b9050611690565b5060008414611771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117689061292a565b60405180910390fd5b8091505092915050565b828054611787906123ab565b90600052602060002090601f0160209004810192826117a957600085556117f0565b82601f106117c257803560ff19168380011785556117f0565b828001600101855582156117f0579182015b828111156117ef5782358255916020019190600101906117d4565b5b5090506117fd91906118cc565b5090565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b828054611852906123ab565b90600052602060002090601f01602090048101928261187457600085556118bb565b82601f1061188d57805160ff19168380011785556118bb565b828001600101855582156118bb579182015b828111156118ba57825182559160200191906001019061189f565b5b5090506118c891906118cc565b5090565b5b808211156118e55760008160009055506001016118cd565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611932816118fd565b811461193d57600080fd5b50565b60008135905061194f81611929565b92915050565b60006020828403121561196b5761196a6118f3565b5b600061197984828501611940565b91505092915050565b60008115159050919050565b61199781611982565b82525050565b60006020820190506119b2600083018461198e565b92915050565b6000819050919050565b6119cb816119b8565b81146119d657600080fd5b50565b6000813590506119e8816119c2565b92915050565b600060208284031215611a0457611a036118f3565b5b6000611a12848285016119d9565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611a4057611a3f611a1b565b5b8235905067ffffffffffffffff811115611a5d57611a5c611a20565b5b602083019150836001820283011115611a7957611a78611a25565b5b9250929050565b600080600060408486031215611a9957611a986118f3565b5b6000611aa7868287016119d9565b935050602084013567ffffffffffffffff811115611ac857611ac76118f8565b5b611ad486828701611a2a565b92509250509250925092565b6000819050919050565b611af381611ae0565b8114611afe57600080fd5b50565b600081359050611b1081611aea565b92915050565b600060208284031215611b2c57611b2b6118f3565b5b6000611b3a84828501611b01565b91505092915050565b611b4c81611ae0565b82525050565b6000602082019050611b676000830184611b43565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b9882611b6d565b9050919050565b611ba881611b8d565b8114611bb357600080fd5b50565b600081359050611bc581611b9f565b92915050565b60008060408385031215611be257611be16118f3565b5b6000611bf085828601611b01565b9250506020611c0185828601611bb6565b9150509250929050565b600060208284031215611c2157611c206118f3565b5b6000611c2f84828501611bb6565b91505092915050565b611c41816119b8565b82525050565b6000602082019050611c5c6000830184611c38565b92915050565b611c6b816119b8565b82525050565b611c7a81611b8d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cba578082015181840152602081019050611c9f565b83811115611cc9576000848401525b50505050565b6000601f19601f8301169050919050565b6000611ceb82611c80565b611cf58185611c8b565b9350611d05818560208601611c9c565b611d0e81611ccf565b840191505092915050565b600060a083016000830151611d316000860182611c62565b506020830151611d446020860182611c71565b5060408301518482036040860152611d5c8282611ce0565b91505060608301518482036060860152611d768282611ce0565b91505060808301518482036080860152611d908282611ce0565b9150508091505092915050565b60006020820190508181036000830152611db78184611d19565b905092915050565b600082825260208201905092915050565b6000611ddb82611c80565b611de58185611dbf565b9350611df5818560208601611c9c565b611dfe81611ccf565b840191505092915050565b60006020820190508181036000830152611e238184611dd0565b905092915050565b60008083601f840112611e4157611e40611a1b565b5b8235905067ffffffffffffffff811115611e5e57611e5d611a20565b5b602083019150836020820283011115611e7a57611e79611a25565b5b9250929050565b600080600060408486031215611e9a57611e996118f3565b5b6000611ea8868287016119d9565b935050602084013567ffffffffffffffff811115611ec957611ec86118f8565b5b611ed586828701611e2b565b92509250509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f1e82611ccf565b810181811067ffffffffffffffff82111715611f3d57611f3c611ee6565b5b80604052505050565b6000611f506118e9565b9050611f5c8282611f15565b919050565b600067ffffffffffffffff821115611f7c57611f7b611ee6565b5b611f8582611ccf565b9050602081019050919050565b82818337600083830152505050565b6000611fb4611faf84611f61565b611f46565b905082815260208101848484011115611fd057611fcf611ee1565b5b611fdb848285611f92565b509392505050565b600082601f830112611ff857611ff7611a1b565b5b8135612008848260208601611fa1565b91505092915050565b6000806000806080858703121561202b5761202a6118f3565b5b6000612039878288016119d9565b945050602085013567ffffffffffffffff81111561205a576120596118f8565b5b61206687828801611fe3565b935050604085013567ffffffffffffffff811115612087576120866118f8565b5b61209387828801611fe3565b925050606085013567ffffffffffffffff8111156120b4576120b36118f8565b5b6120c087828801611fe3565b91505092959194509250565b600080604083850312156120e3576120e26118f3565b5b60006120f185828601611bb6565b9250506020612102858286016119d9565b9150509250929050565b600080600060608486031215612125576121246118f3565b5b600084013567ffffffffffffffff811115612143576121426118f8565b5b61214f86828701611fe3565b935050602084013567ffffffffffffffff8111156121705761216f6118f8565b5b61217c86828701611fe3565b925050604084013567ffffffffffffffff81111561219d5761219c6118f8565b5b6121a986828701611fe3565b9150509250925092565b7f416c726561647920766572696669656400000000000000000000000000000000600082015250565b60006121e9601083611dbf565b91506121f4826121b3565b602082019050919050565b60006020820190508181036000830152612218816121dc565b9050919050565b600061222b8385611dbf565b9350612238838584611f92565b61224183611ccf565b840190509392505050565b60006040820190506122616000830186611c38565b818103602083015261227481848661221f565b9050949350505050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006122da602f83611dbf565b91506122e58261227e565b604082019050919050565b60006020820190508181036000830152612309816122cd565b9050919050565b7f4e6f74206f776e6572206f662064617070000000000000000000000000000000600082015250565b6000612346601183611dbf565b915061235182612310565b602082019050919050565b6000602082019050818103600083015261237581612339565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123c357607f821691505b602082108114156123d7576123d661237c565b5b50919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000612439602e83611dbf565b9150612444826123dd565b604082019050919050565b600060208201905081810360008301526124688161242c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124d8826119b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561250b5761250a61249e565b5b600182019050919050565b61251f81611b8d565b82525050565b600060a08201905061253a6000830188611c38565b6125476020830187612516565b81810360408301526125598186611dd0565b9050818103606083015261256d8185611dd0565b905081810360808301526125818184611dd0565b90509695505050505050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006125c3600983611dbf565b91506125ce8261258d565b602082019050919050565b600060208201905081810360008301526125f2816125b6565b9050919050565b60008190508160005260206000209050919050565b6000815461261b816123ab565b6126258186611dbf565b94506001821660008114612640576001811461265257612685565b60ff1983168652602086019350612685565b61265b856125f9565b60005b8381101561267d5781548189015260018201915060208101905061265e565b808801955050505b50505092915050565b600060a0820190506126a36000830188611c38565b6126b06020830187612516565b81810360408301526126c2818661260e565b905081810360608301526126d6818561260e565b905081810360808301526126ea818461260e565b90509695505050505050565b6000612701826119b8565b915061270c836119b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127415761274061249e565b5b828201905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061278d60178361274c565b915061279882612757565b601782019050919050565b60006127ae82611c80565b6127b8818561274c565b93506127c8818560208601611c9c565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061280a60118361274c565b9150612815826127d4565b601182019050919050565b600061282b82612780565b915061283782856127a3565b9150612842826127fd565b915061284e82846127a3565b91508190509392505050565b6000612865826119b8565b9150612870836119b8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128a9576128a861249e565b5b828202905092915050565b60006128bf826119b8565b915060008214156128d3576128d261249e565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000612914602083611dbf565b915061291f826128de565b602082019050919050565b6000602082019050818103600083015261294381612907565b905091905056fea26469706673582212208f0ee76cef5f412b12aabf5d0eee3507e96a3d036a8af51c0cae456831f3518c64736f6c63430008090033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/contracts/artifacts/contracts/NotUpgradableStore.sol/NotUpgradableStore.dbg.json b/contracts/artifacts/contracts/NotUpgradableStore.sol/NotUpgradableStore.dbg.json index 5698158..71e208d 100644 --- a/contracts/artifacts/contracts/NotUpgradableStore.sol/NotUpgradableStore.dbg.json +++ b/contracts/artifacts/contracts/NotUpgradableStore.sol/NotUpgradableStore.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/3754d022ee2847c04ff26aa25abf96cc.json" + "buildInfo": "../../build-info/eb8fac9a10c5bb11ac5220c0c402b393.json" } diff --git a/contracts/contracts/DAppStore.sol b/contracts/contracts/DAppStore.sol index a5b7e43..84b503b 100644 --- a/contracts/contracts/DAppStore.sol +++ b/contracts/contracts/DAppStore.sol @@ -9,6 +9,8 @@ contract DAppStore is Initializable, AccessControl { bytes32 public constant ADMIN_ROLE = keccak256("ADMIN_ROLE"); uint256 public appID; uint public amountToPay; + uint versionCode; + string public currentDAppStoreIPFSHash; mapping(uint => address) appOwners; mapping(uint => string) appName; mapping(uint => string) appIPFSHash; @@ -21,6 +23,7 @@ contract DAppStore is Initializable, AccessControl { event ReleaseApp(uint appID); event VerifyApp(uint appID); event DeleteApp(uint appID); + event StoreUpdate(uint versionCode, string ipfsHash); function initialize(uint _amountToPay, address[] calldata admins) public initializer { amountToPay = _amountToPay; @@ -28,6 +31,7 @@ contract DAppStore is Initializable, AccessControl { _setupRole(ADMIN_ROLE, admins[i]); } appID = 0; + versionCode = 0; } struct App { @@ -89,5 +93,10 @@ contract DAppStore is Initializable, AccessControl { function addAdmin(address _newAdmin) public onlyRole(ADMIN_ROLE) { grantRole(ADMIN_ROLE, _newAdmin); } - + function updateStore(uint _versionCode, string calldata _ipfsHash) public onlyRole(ADMIN_ROLE) { + require(_versionCode>versionCode); + versionCode = _versionCode; + currentDAppStoreIPFSHash = _ipfsHash; + emit StoreUpdate(versionCode, _ipfsHash); + } } diff --git a/contracts/dappstoresubgraph/abis/DAppStore.json b/contracts/dappstoresubgraph/abis/DAppStore.json index 053416c..563b10c 100644 --- a/contracts/dappstoresubgraph/abis/DAppStore.json +++ b/contracts/dappstoresubgraph/abis/DAppStore.json @@ -137,6 +137,25 @@ "name": "RoleRevoked", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "versionCode", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfsHash", + "type": "string" + } + ], + "name": "StoreUpdate", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -187,32 +206,6 @@ "name": "VerifyApp", "type": "event" }, - { - "inputs": [], - "name": "ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -226,32 +219,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "amountToPay", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "appID", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -265,71 +232,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_appID", - "type": "uint256" - } - ], - "name": "getDAppData", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "appID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "appOwner", - "type": "address" - }, - { - "internalType": "string", - "name": "appName", - "type": "string" - }, - { - "internalType": "string", - "name": "appIPFSHash", - "type": "string" - }, - { - "internalType": "string", - "name": "appAddData", - "type": "string" - } - ], - "internalType": "struct DAppStore.App", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -348,30 +250,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -462,25 +340,6 @@ "stateMutability": "payable", "type": "function" }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -527,6 +386,24 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_versionCode", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_ipfsHash", + "type": "string" + } + ], + "name": "updateStore", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -539,5 +416,178 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [], + "name": "ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "amountToPay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "appID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "currentDAppStoreIPFSHash", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_appID", + "type": "uint256" + } + ], + "name": "getDAppData", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "appID", + "type": "uint256" + }, + { + "internalType": "address", + "name": "appOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "appName", + "type": "string" + }, + { + "internalType": "string", + "name": "appIPFSHash", + "type": "string" + }, + { + "internalType": "string", + "name": "appAddData", + "type": "string" + } + ], + "internalType": "struct DAppStore.App", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" } ] \ No newline at end of file diff --git a/contracts/dappstoresubgraph/generated/DAppStore/DAppStore.ts b/contracts/dappstoresubgraph/generated/DAppStore/DAppStore.ts index fdb4931..111b6a1 100644 --- a/contracts/dappstoresubgraph/generated/DAppStore/DAppStore.ts +++ b/contracts/dappstoresubgraph/generated/DAppStore/DAppStore.ts @@ -158,6 +158,28 @@ export class RoleRevoked__Params { } } +export class StoreUpdate extends ethereum.Event { + get params(): StoreUpdate__Params { + return new StoreUpdate__Params(this); + } +} + +export class StoreUpdate__Params { + _event: StoreUpdate; + + constructor(event: StoreUpdate) { + this._event = event; + } + + get versionCode(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } + + get ipfsHash(): string { + return this._event.parameters[1].value.toString(); + } +} + export class UpdateApp extends ethereum.Event { get params(): UpdateApp__Params { return new UpdateApp__Params(this); @@ -252,29 +274,6 @@ export class DAppStore extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBytes()); } - DEFAULT_ADMIN_ROLE(): Bytes { - let result = super.call( - "DEFAULT_ADMIN_ROLE", - "DEFAULT_ADMIN_ROLE():(bytes32)", - [] - ); - - return result[0].toBytes(); - } - - try_DEFAULT_ADMIN_ROLE(): ethereum.CallResult { - let result = super.tryCall( - "DEFAULT_ADMIN_ROLE", - "DEFAULT_ADMIN_ROLE():(bytes32)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBytes()); - } - amountToPay(): BigInt { let result = super.call("amountToPay", "amountToPay():(uint256)", []); @@ -305,6 +304,52 @@ export class DAppStore extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } + currentDAppStoreIPFSHash(): string { + let result = super.call( + "currentDAppStoreIPFSHash", + "currentDAppStoreIPFSHash():(string)", + [] + ); + + return result[0].toString(); + } + + try_currentDAppStoreIPFSHash(): ethereum.CallResult { + let result = super.tryCall( + "currentDAppStoreIPFSHash", + "currentDAppStoreIPFSHash():(string)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toString()); + } + + DEFAULT_ADMIN_ROLE(): Bytes { + let result = super.call( + "DEFAULT_ADMIN_ROLE", + "DEFAULT_ADMIN_ROLE():(bytes32)", + [] + ); + + return result[0].toBytes(); + } + + try_DEFAULT_ADMIN_ROLE(): ethereum.CallResult { + let result = super.tryCall( + "DEFAULT_ADMIN_ROLE", + "DEFAULT_ADMIN_ROLE():(bytes32)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBytes()); + } + getDAppData(_appID: BigInt): DAppStore__getDAppDataResultValue0Struct { let result = super.call( "getDAppData", @@ -740,6 +785,40 @@ export class UpdateDAppCall__Outputs { } } +export class UpdateStoreCall extends ethereum.Call { + get inputs(): UpdateStoreCall__Inputs { + return new UpdateStoreCall__Inputs(this); + } + + get outputs(): UpdateStoreCall__Outputs { + return new UpdateStoreCall__Outputs(this); + } +} + +export class UpdateStoreCall__Inputs { + _call: UpdateStoreCall; + + constructor(call: UpdateStoreCall) { + this._call = call; + } + + get _versionCode(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } + + get _ipfsHash(): string { + return this._call.inputValues[1].value.toString(); + } +} + +export class UpdateStoreCall__Outputs { + _call: UpdateStoreCall; + + constructor(call: UpdateStoreCall) { + this._call = call; + } +} + export class VerifyDAppCall extends ethereum.Call { get inputs(): VerifyDAppCall__Inputs { return new VerifyDAppCall__Inputs(this); diff --git a/contracts/dappstoresubgraph/generated/schema.ts b/contracts/dappstoresubgraph/generated/schema.ts index 433de89..d7c32d2 100644 --- a/contracts/dappstoresubgraph/generated/schema.ts +++ b/contracts/dappstoresubgraph/generated/schema.ts @@ -163,3 +163,47 @@ export class App extends Entity { this.set("status", Value.fromString(value)); } } + +export class DAppStore extends Entity { + constructor(id: string) { + super(); + this.set("id", Value.fromString(id)); + + this.set("ipfsHash", Value.fromString("")); + } + + save(): void { + let id = this.get("id"); + assert(id != null, "Cannot save DAppStore entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + "Cannot save DAppStore entity with non-string ID. " + + 'Considering using .toHex() to convert the "id" to a string.' + ); + store.set("DAppStore", id.toString(), this); + } + } + + static load(id: string): DAppStore | null { + return changetype(store.get("DAppStore", id)); + } + + get id(): string { + let value = this.get("id"); + return value!.toString(); + } + + set id(value: string) { + this.set("id", Value.fromString(value)); + } + + get ipfsHash(): string { + let value = this.get("ipfsHash"); + return value!.toString(); + } + + set ipfsHash(value: string) { + this.set("ipfsHash", Value.fromString(value)); + } +} diff --git a/contracts/dappstoresubgraph/schema.graphql b/contracts/dappstoresubgraph/schema.graphql index 1f1d77c..8597951 100644 --- a/contracts/dappstoresubgraph/schema.graphql +++ b/contracts/dappstoresubgraph/schema.graphql @@ -13,3 +13,7 @@ type App @entity { verified: Boolean! status: String! } +type DAppStore @entity { + id: ID! + ipfsHash: String! +} \ No newline at end of file diff --git a/contracts/dappstoresubgraph/src/mapping.ts b/contracts/dappstoresubgraph/src/mapping.ts index 178959e..de970d5 100644 --- a/contracts/dappstoresubgraph/src/mapping.ts +++ b/contracts/dappstoresubgraph/src/mapping.ts @@ -1,9 +1,10 @@ import { ipfs, json, store, Value } from "@graphprotocol/graph-ts" -import { DAppStore, NewApp, UpdateApp, VerifyApp, ReleaseApp, DeleteApp } from "../generated/DAppStore/DAppStore" -import { App } from "../generated/schema" +import { NewApp, UpdateApp, VerifyApp, ReleaseApp, DeleteApp, StoreUpdate } from "../generated/DAppStore/DAppStore" +import { App, DAppStore } from "../generated/schema" //import { http } from 'as-http' //import { JSON } from "assemblyscript-json"; var entity: App | null; +var dappstoreEntity: DAppStore | null; let allArr: string[] = [] export function handleNewApp(event: NewApp): void { let allImg: Value[] = [] @@ -144,4 +145,16 @@ export function deleteApp(event: DeleteApp): void { if (entity) { store.remove("App", event.params.appID.toString()) } +} + +export function newDAppStore(event: StoreUpdate): void { + dappstoreEntity = new DAppStore(event.params.versionCode.toString()); + dappstoreEntity!.ipfsHash = event.params.ipfsHash; + dappstoreEntity!.save(); + + var oldID = event.params.versionCode.toI64()-1 + var oldEntity = DAppStore.load(oldID.toString()) + if (oldEntity) { + store.remove("DAppStore", oldID.toString()); + } } \ No newline at end of file diff --git a/contracts/dappstoresubgraph/subgraph.yaml b/contracts/dappstoresubgraph/subgraph.yaml index 1499b5c..e5ee40b 100644 --- a/contracts/dappstoresubgraph/subgraph.yaml +++ b/contracts/dappstoresubgraph/subgraph.yaml @@ -8,9 +8,9 @@ dataSources: name: DAppStore network: rinkeby source: - address: "0xB01C6F9A9D63F7a1750591575f7a761e4B9b8D43" + address: "0xB35D9Ba7F80E587a92512AeA671438Cf193C2E80" abi: DAppStore - startBlock: 9983294 + startBlock: 10042395 mapping: kind: ethereum/events apiVersion: 0.0.5 @@ -18,6 +18,10 @@ dataSources: entities: - NewApp - UpdateApp + - VerifyApp + - ReleaseApp + - DeleteApp + - StoreUpdate abis: - name: DAppStore file: ./abis/DAppStore.json @@ -26,4 +30,12 @@ dataSources: handler: handleNewApp - event: UpdateApp(uint256,address,string,string,string) handler: handleUpdateApp + - event: VerifyApp(uint256) + handler: verifyApp + - event: ReleaseApp(uint256) + handler: releaseApp + - event: DeleteApp(uint256) + handler: deleteApp + - event: StoreUpdate(uint256,string) + handler: newDAppStore file: ./src/mapping.ts diff --git a/contracts/package-lock.json b/contracts/package-lock.json index 8043edc..59f1f34 100644 --- a/contracts/package-lock.json +++ b/contracts/package-lock.json @@ -18,7 +18,7 @@ "chai": "^4.3.4", "ethereum-waffle": "^3.4.0", "ethers": "^5.5.2", - "hardhat": "^2.7.0", + "hardhat": "^2.8.3", "hardhat-gas-reporter": "^1.0.6" } }, @@ -12851,16 +12851,16 @@ } }, "node_modules/hardhat": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.7.0.tgz", - "integrity": "sha512-DqweY3KH5gwExoZ8EtsAfioj0Hk0NBXWXT3fMXWkiQNfyYBoZLrqdPNkbJ/E2LD4mZ+BKF7v/1chYR9ZCn2Z+g==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.8.3.tgz", + "integrity": "sha512-VxqiVTSayRoeLHly8zKnlvtWoG8sroTP4vl8GHuj7OjfAdrHu4Blk7NBJ5+Rl8cmMEp6CuZtDaDmcHJIRTwEPA==", "dev": true, "dependencies": { - "@ethereumjs/block": "^3.4.0", - "@ethereumjs/blockchain": "^5.4.0", - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@ethereumjs/vm": "^5.5.2", + "@ethereumjs/block": "^3.6.0", + "@ethereumjs/blockchain": "^5.5.0", + "@ethereumjs/common": "^2.6.0", + "@ethereumjs/tx": "^3.4.0", + "@ethereumjs/vm": "^5.6.0", "@ethersproject/abi": "^5.1.2", "@sentry/node": "^5.18.1", "@solidity-parser/parser": "^0.14.0", @@ -12878,7 +12878,7 @@ "eth-sig-util": "^2.5.2", "ethereum-cryptography": "^0.1.2", "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^7.1.0", + "ethereumjs-util": "^7.1.3", "find-up": "^2.1.0", "fp-ts": "1.19.3", "fs-extra": "^7.0.1", @@ -12887,9 +12887,9 @@ "immutable": "^4.0.0-rc.12", "io-ts": "1.10.4", "lodash": "^4.17.11", - "merkle-patricia-tree": "^4.2.0", + "merkle-patricia-tree": "^4.2.2", "mnemonist": "^0.38.0", - "mocha": "^7.1.2", + "mocha": "^7.2.0", "node-fetch": "^2.6.0", "qs": "^6.7.0", "raw-body": "^2.4.1", @@ -26361,16 +26361,16 @@ } }, "hardhat": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.7.0.tgz", - "integrity": "sha512-DqweY3KH5gwExoZ8EtsAfioj0Hk0NBXWXT3fMXWkiQNfyYBoZLrqdPNkbJ/E2LD4mZ+BKF7v/1chYR9ZCn2Z+g==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.8.3.tgz", + "integrity": "sha512-VxqiVTSayRoeLHly8zKnlvtWoG8sroTP4vl8GHuj7OjfAdrHu4Blk7NBJ5+Rl8cmMEp6CuZtDaDmcHJIRTwEPA==", "dev": true, "requires": { - "@ethereumjs/block": "^3.4.0", - "@ethereumjs/blockchain": "^5.4.0", - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@ethereumjs/vm": "^5.5.2", + "@ethereumjs/block": "^3.6.0", + "@ethereumjs/blockchain": "^5.5.0", + "@ethereumjs/common": "^2.6.0", + "@ethereumjs/tx": "^3.4.0", + "@ethereumjs/vm": "^5.6.0", "@ethersproject/abi": "^5.1.2", "@sentry/node": "^5.18.1", "@solidity-parser/parser": "^0.14.0", @@ -26388,7 +26388,7 @@ "eth-sig-util": "^2.5.2", "ethereum-cryptography": "^0.1.2", "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^7.1.0", + "ethereumjs-util": "^7.1.3", "find-up": "^2.1.0", "fp-ts": "1.19.3", "fs-extra": "^7.0.1", @@ -26397,9 +26397,9 @@ "immutable": "^4.0.0-rc.12", "io-ts": "1.10.4", "lodash": "^4.17.11", - "merkle-patricia-tree": "^4.2.0", + "merkle-patricia-tree": "^4.2.2", "mnemonist": "^0.38.0", - "mocha": "^7.1.2", + "mocha": "^7.2.0", "node-fetch": "^2.6.0", "qs": "^6.7.0", "raw-body": "^2.4.1", diff --git a/contracts/package.json b/contracts/package.json index 0326ee3..88d9eb9 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -8,7 +8,7 @@ "chai": "^4.3.4", "ethereum-waffle": "^3.4.0", "ethers": "^5.5.2", - "hardhat": "^2.7.0", + "hardhat": "^2.8.3", "hardhat-gas-reporter": "^1.0.6" }, "dependencies": { From 6bfdef64fbfe20f14b527358ce3d2e9be24c2d5e Mon Sep 17 00:00:00 2001 From: Markus Haas Date: Mon, 24 Jan 2022 08:39:35 +0100 Subject: [PATCH 2/2] Implemented Joaquims suggestions --- app/build.gradle | 1 + app/src/main/java/org/ethereum/dappstore/MainActivity.kt | 9 ++++----- .../main/java/org/ethereum/dappstore/logic/AppUpdater.kt | 2 -- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f286111..803f6a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,6 +77,7 @@ dependencies { implementation "com.apollographql.apollo:apollo-runtime:$apollo_version" implementation "com.apollographql.apollo:apollo-coroutines-support:$apollo_version" implementation 'com.github.ligi:ipfs-api-kotlin:0.15' + implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.4.0" testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' diff --git a/app/src/main/java/org/ethereum/dappstore/MainActivity.kt b/app/src/main/java/org/ethereum/dappstore/MainActivity.kt index 6dd40b9..1acfd0f 100644 --- a/app/src/main/java/org/ethereum/dappstore/MainActivity.kt +++ b/app/src/main/java/org/ethereum/dappstore/MainActivity.kt @@ -8,12 +8,12 @@ import androidx.compose.material.* import androidx.compose.runtime.getValue import androidx.compose.ui.unit.dp import androidx.fragment.app.FragmentActivity +import androidx.lifecycle.lifecycleScope import androidx.navigation.NavDestination.Companion.hierarchy import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController -import kotlinx.coroutines.* import org.ethereum.dappstore.ui.Screen import org.ethereum.dappstore.ui.components.* import org.ethereum.dappstore.ui.theme.DAppStoreTheme @@ -25,13 +25,12 @@ class MainActivity : FragmentActivity() { private val bottomNavScreens = listOf(Screen.MainNav.Home, Screen.MainNav.User, Screen.MainNav.Settings) + private val updater = AppUpdater() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val context: Context = this; - runBlocking { - launch { - AppUpdater().checkForUpdate(context) - } + lifecycleScope.launchWhenStarted { + updater.checkForUpdate(context) } setContent { val navController = rememberNavController() diff --git a/app/src/main/java/org/ethereum/dappstore/logic/AppUpdater.kt b/app/src/main/java/org/ethereum/dappstore/logic/AppUpdater.kt index 5cdf62b..a24c5f9 100644 --- a/app/src/main/java/org/ethereum/dappstore/logic/AppUpdater.kt +++ b/app/src/main/java/org/ethereum/dappstore/logic/AppUpdater.kt @@ -29,8 +29,6 @@ class AppUpdater { iconUrl = "" ) AppDownloader().downloadApk(context, appInfo) - } else { - Toast.makeText(context, "DAppStore is up to date :)", Toast.LENGTH_SHORT).show() } } }